https://dev.kronoz.win/r/marzneshin.git
| 1 |
d636f3f |
Dawsh |
2y ago |
import { z } from "zod"; |
| 2 |
d636f3f |
Dawsh |
2y ago |
import { ProtocolType } from "@marzneshin/modules/inbounds"; |
| 3 |
d636f3f |
Dawsh |
2y ago |
|
| 4 |
d636f3f |
Dawsh |
2y ago |
export const HostSchema = z.object({ |
| 5 |
d636f3f |
Dawsh |
2y ago |
remark: z.string().min(1, "Remark is required"), |
| 6 |
d636f3f |
Dawsh |
2y ago |
address: z.string().min(1, "Address is required"), |
| 7 |
4d0417b |
Mardin |
1y ago |
is_disabled: z.boolean().default(false), |
| 8 |
d636f3f |
Dawsh |
2y ago |
weight: z.coerce |
| 9 |
d636f3f |
Dawsh |
2y ago |
.number().int() |
| 10 |
d636f3f |
Dawsh |
2y ago |
.nullable() |
| 11 |
d636f3f |
Dawsh |
2y ago |
.optional(), |
| 12 |
4d0417b |
Mardin |
1y ago |
port: z |
| 13 |
4d0417b |
Mardin |
1y ago |
.preprocess( |
| 14 |
4d0417b |
Mardin |
1y ago |
(val) => (val === "" || val === undefined ? null : Number(val)), |
| 15 |
4d0417b |
Mardin |
1y ago |
z.union([ |
| 16 |
4d0417b |
Mardin |
1y ago |
z |
| 17 |
4d0417b |
Mardin |
1y ago |
.number() |
| 18 |
4d0417b |
Mardin |
1y ago |
.int() |
| 19 |
4d0417b |
Mardin |
1y ago |
.gte(1, "Port must be more than 1") |
| 20 |
4d0417b |
Mardin |
1y ago |
.lte(65535, "Port cannot be more than 65535"), |
| 21 |
4d0417b |
Mardin |
1y ago |
z.null(), |
| 22 |
4d0417b |
Mardin |
1y ago |
]) |
| 23 |
4d0417b |
Mardin |
1y ago |
), |
| 24 |
d636f3f |
Dawsh |
2y ago |
}); |
| 25 |
d636f3f |
Dawsh |
2y ago |
|
| 26 |
d636f3f |
Dawsh |
2y ago |
|
| 27 |
d636f3f |
Dawsh |
2y ago |
export type HostSchemaType = z.infer<typeof HostSchema>; |
| 28 |
d636f3f |
Dawsh |
2y ago |
export type HostType = HostSchemaType & { id?: number, inboundId?: number, protocol: ProtocolType }; |