eslint-plugin-zod-openapi
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-meta": "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-meta": "error"
}
}
]
🔧 This rule is automatically fixable by the --fix CLI option.
| Name |
Description |
🔧 |
| require-meta |
Requires that all ZodTypes have an .meta() 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-meta-last |
Prefers that the .meta() method be the last method in the ZodType chain. |
|
| prefer-zod-default |
Provides an error when default in .meta() is used |
|
# Fix issues
pnpm format
# Check for issues
pnpm lint
To release a new version
- Create a new GitHub Release
- Select
🏷️ Choose a tag, enter a version number. eg. v1.2.0 and click + Create new tag: vX.X.X on publish.
- Click the
Generate release notes button and adjust the description.
- Tick the
Set as the latest release box and click Publish release. This will trigger the Release workflow.
- Check the
Pull Requests tab for a PR labelled Release vX.X.X.
- Click
Merge Pull Request on that Pull Request to update master with the new package version.
To release a new beta version
- Create a new GitHub Release
- Select
🏷️ 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.
- Click the
Generate release notes button and adjust the description.
- Tick the
Set as a pre-release box and click Publish release. This will trigger the Prerelease workflow.