inbound.ts 990 B

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