@nzod/dto
v1.0.1
Published
Create DTOs from N'Zod schemas
Downloads
2
Readme
Before you start
The README on main branch may contain some unreleased changes.
Go to release/latest branch to see the actual README for the latest version from NPM.
Navigation
Installation
NPM:
npm install @nzod/dtoYarn:
yarn add @nzod/dtoUsage
Creating DTO from N'Zod schema
import { z } from '@nzod/z'
import { createNZodDto } from '@nzod/dto'
const CredentialsSchema = z.schema({
username: z.string(),
password: z.string(),
})
// class is required for using DTO as a type
class CredentialsDto extends createNZodDto(CredentialsSchema) {}Validate data using DTO
// The value will be validated and parsed using CredentialsSchema
const value = 'Something possibly invalid'
const credentials = CredentialsDto.create(value)@nzod/nestjs
The many functions from @nzod/nestjs accept DTOs.
You can learn more on @nzod/nestjs README page
Contributing
- Fork this repo
- Use the Regular flow
Please follow Conventions
Maintenance
The dev branch is main - any developer changes is merged in there.
Also, there is a release/latest branch. It always contains the actual source code for release published with latest tag.
All changes is made using Pull Requests - push is forbidden. PR can be merged only after successfull test-and-build workflow checks.
When PR is merged, release-drafter workflow creates/updates a draft release. The changelog is built from the merged branch scope (feat, fix, etc) and PR title. When release is ready - we publish the draft.
Then, the release workflow handles everything:
- It runs tests, builds a package, and publishes it
- It synchronizes released tag with
release/latestbranch
Regular flow
- Create feature branch
- Make changes in your feature branch and commit
- Create a Pull Request from your feature branch to
main
The PR is needed to test the code before pushing to release branch - If your PR contains breaking changes, don't forget to put a
BREAKING CHANGESlabel - Merge the PR in
main - All done! Now you have a drafted release - just publish it when ready
Prerelease flow
- Assume your prerelease tag is
beta - Create
release/betabranch - Create feature branch
- Make changes in your feature branch and commit
- Create a Pull Request from your feature branch to
release/beta
The PR is needed to test the code before pushing to release branch - Create Github release with tag like
v1.0.0-beta, pointing torelease/betabranch
For nextbetaversions use semver build syntax:v1.0.0-beta+1 - After that, the
releaseworkflow will publish your package with thebetatag - When the
betaversion is ready to becomelatest- create a Pull Request fromrelease/betatomainbranch - Continue from the Regular flow's #5 step
Conventions
Feature branches:
- Should start with
feat/,fix/,docs/,refactor/, and etc., depending on the changes you want to propose (see pr-labeler.yml for a full list of scopes)
Commits:
- Should follow the Conventional Commits specification
- You can find supported types and scopes into
.cz-config.js
Pull requests:
- Should have human-readable name, for example: "Add a TODO list feature"
- Should describe changes
- Should have correct labels (handled by PR Labeler in most cases)
