7 lines
571 B
TypeScript
7 lines
571 B
TypeScript
import { z } from "zod"
|
|
import { serverReadSchema } from "@mmapp/contracts/servers"
|
|
const server = serverReadSchema.pick({id:true,name:true,host:true,country:true,type:true,enabled:true,asn:true,status:true,latency:true})
|
|
.partial({type:true,asn:true,status:true,latency:true})
|
|
.extend({id:z.number().int().positive().max(Number.MAX_SAFE_INTEGER),host:z.string().trim().min(1),latency:z.number().finite().nonnegative().nullable().optional()})
|
|
export const wireGuardServersSchema = z.array(server).refine(rows => new Set(rows.map(row => row.id)).size === rows.length)
|