inbound.ts 1014 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { z } from 'zod';
  2. export const SlimInboundSchema = z
  3. .object({
  4. id: z.number(),
  5. protocol: z.string(),
  6. })
  7. .loose();
  8. export const SlimInboundListSchema = z.array(SlimInboundSchema);
  9. export const InboundDetailSchema = z
  10. .object({
  11. id: z.number(),
  12. protocol: z.string(),
  13. })
  14. .loose();
  15. export const LastOnlineMapSchema = z.record(z.string(), z.number());
  16. export const InboundFormSchema = z.object({
  17. remark: z.string(),
  18. enable: z.boolean(),
  19. port: z
  20. .number({ error: 'pages.inbounds.toasts.portRequired' })
  21. .int()
  22. .min(1, 'pages.inbounds.toasts.portRange')
  23. .max(65535, 'pages.inbounds.toasts.portRange'),
  24. listen: z.string(),
  25. protocol: z.string().min(1, 'pages.inbounds.toasts.protocolRequired'),
  26. });
  27. export type SlimInbound = z.infer<typeof SlimInboundSchema>;
  28. export type InboundDetail = z.infer<typeof InboundDetailSchema>;
  29. export type LastOnlineMap = z.infer<typeof LastOnlineMapSchema>;
  30. export type InboundFormValues = z.infer<typeof InboundFormSchema>;