Skip to main content

Code Standards

TypeScript

  • Use type instead of interface
  • Document types: type XDocument = X & Document
  • Never use any or never
  • Avoid hardcoded values; use enums from @nittio/enum with _ENUM suffix

Zod

  • Naming: [resource]ZodCreate, [resource]ZodUpdate, [resource]ZodRead
  • Use z.nativeEnum() for enums, never z.enum() with strings

Mongoose

  • Always use writeConcern from @nittio/mongo
  • Never use .save() or findById
  • Use: updateMany, findOne, find, findOneAndUpdate

Files

  • 1 function/component per file
  • Export public API through index.ts
  • Generic utilities go in @nittio/utils

File naming

TypePattern
Route[resource]Routes.ts
Mapper[resource]Mapper.ts
Zod[resource]Zod.ts
Handlerhandle[Resource][Method].ts

Frontend

  • Use useTranslation for i18n (do not edit en/ptbr JSON files directly)
  • Mutations already have Orval-generated helpers; do not recreate fetchers
  • Do not use useMutation manually

Commits