653 B
653 B
Zod Guidelines
Schema Definition
- Define all schemas in
src/types.ts - Use
z.object()for objects,z.array()for arrays - Mark optional fields with
.optional() - Create generic schemas for reusable structures
Type Inference
- Always infer types from schemas:
export type Foo = z.infer<typeof FooSchema>
Validation
- Use
.parse()to validate API responses - Only validate successful responses (
retcode === RESPONSE_CODES.SUCCESS) - Return unvalidated responses for error cases
Patterns
- Follow existing schema naming:
FooSchemafor schemas,Foofor types - Use
ZZZResponseSchema(dataSchema)for API responses