@battle-racing/br-common-lib
Version:
Common library for all Battle Racing Repositorios
19 lines (15 loc) • 510 B
text/typescript
import { z } from 'zod';
export const errorResponseSchema = z.object({
status: z.literal('error'),
code: z.number(),
errorType: z.string(),
message: z.string(),
});
export const successResponseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>
z.object({
status: z.literal('success'),
code: z.literal(200),
data: itemSchema.optional(),
});
export const responseSchema = <T extends z.ZodTypeAny>(itemSchema: T) =>
z.union([successResponseSchema(itemSchema), errorResponseSchema]);