gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/modules/hosts/domain/host.ts · v0.6.5
Source
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 f3aaba8 Dawsh 1y ago (val) => (val === "" || val === undefined || val === null ? 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 };