Code Standards
TypeScript
- Use
typeinstead ofinterface - Document types:
type XDocument = X & Document - Never use
anyornever - Avoid hardcoded values; use enums from
@nittio/enumwith_ENUMsuffix
Zod
- Naming:
[resource]ZodCreate,[resource]ZodUpdate,[resource]ZodRead - Use
z.nativeEnum()for enums, neverz.enum()with strings
Mongoose
- Always use
writeConcernfrom@nittio/mongo - Never use
.save()orfindById - 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
| Type | Pattern |
|---|---|
| Route | [resource]Routes.ts |
| Mapper | [resource]Mapper.ts |
| Zod | [resource]Zod.ts |
| Handler | handle[Resource][Method].ts |
Frontend
- Use
useTranslationfor i18n (do not editen/ptbrJSON files directly) - Mutations already have Orval-generated helpers; do not recreate fetchers
- Do not use
useMutationmanually
Commits
- Use Conventional Commits
- Examples:
feat(event): add ticket validation,fix(cart): payment flow