Eslint rules for zod-openapi
MIT License
This is a set of Eslint rules created for use with zod-openapi. This aims to optimise the overall developer experience with a little sprinkle of magic ✨.
To install simply run on yarn, npm or pnpm
yarn add -D eslint-plugin-zod-openapi
# or
npm i -D eslint-plugin-zod-openapi
# or
pnpm i -D eslint-plugin-zod-openapi
Add the following configuration to your .eslintrc
file
{
"plugins": ["zod-openapi"]
}
{
"rules": {
"zod-openapi/require-openapi": "error"
"zod-openapi/require-comment": "error",
"zod-openapi/prefer-zod-default": "warn",
}
}
You may wish to use overrides as this plugin by default will assume that all Zod Objects are using zod-openapi.
"overrides": [
{
"files": ["src/api-types/*.ts"],
"rules": {
"zod-openapi/require-openapi": "error"
}
}
]
🔧 This rule is automatically fixable by the --fix CLI option.
Name | Description | 🔧 |
---|---|---|
require-openapi | Requires that all ZodTypes have an .openapi() method. |
|
require-comment | Requires that all ZodTypes have a description and matching JSDoc comment. |
✅ |
require-example | Requires that all ZodTypes have an example or examples field. |
|
prefer-openapi-last | Prefers that the .openapi() method be the last method in the ZodType chain. |
|
prefer-zod-default | Provides an error when default in .openapi() is used |
pnpm test
# Fix issues
pnpm format
# Check for issues
pnpm lint
To release a new version
🏷️ Choose a tag
, enter a version number. eg. v1.2.0
and click + Create new tag: vX.X.X on publish
.Generate release notes
button and adjust the description.Set as the latest release
box and click Publish release
. This will trigger the Release
workflow.Pull Requests
tab for a PR labelled Release vX.X.X
.Merge Pull Request
on that Pull Request to update master with the new package version.To release a new beta version
🏷️ Choose a tag
, enter a version number with a -beta.X
suffix eg. v1.2.0-beta.1
and click + Create new tag: vX.X.X-beta.X on publish
.Generate release notes
button and adjust the description.Set as a pre-release
box and click Publish release
. This will trigger the Prerelease
workflow.