Openstatus www.openstatus.dev
at main 37 lines 996 B view raw
1import { z } from "zod"; 2 3import { monitorRegionSchema } from "@openstatus/db/src/schema/constants"; 4 5export const tcpPayload = z.object({ 6 workspaceId: z.string(), 7 monitorId: z.string(), 8 url: z.string(), 9 cronTimestamp: z.number(), 10 timeout: z.number().prefault(45000), 11 degradedAfter: z.number().nullable(), 12}); 13 14export const TCPResponse = z.object({ 15 type: z.literal("tcp").prefault("tcp"), 16 requestId: z.number().optional(), 17 workspaceId: z.number().optional(), 18 monitorId: z.number().optional(), 19 timestamp: z.number(), 20 timing: z.object({ 21 tcpStart: z.number(), 22 tcpDone: z.number(), 23 }), 24 error: z.string().optional(), 25 region: monitorRegionSchema, 26 latency: z.number().optional(), 27}); 28 29export const TCPResponseTest = TCPResponse.extend({ 30 state: z.literal("success").prefault("success"), 31}).or( 32 z.object({ 33 type: z.literal("tcp").prefault("tcp"), 34 state: z.literal("error").prefault("error"), 35 }), 36); 37export type tcpPayload = z.infer<typeof tcpPayload>;