Registry / testing / eslint-plugin-zod

eslint-plugin-zod

JSON →
library3.8.0jsnpmunverified

An ESLint plugin providing custom lint rules to enforce best practices when using Zod (v3/v4). Current stable version 3.8.0, released Oct 2025, with minor releases every few weeks. Works with ESLint 9/10 and Oxlint 1.59+. Key differentiators: dedicated Zod linting, rules for schema consistency, import style, and error handling. Supports both zod and zod-mini. Ships TypeScript types.

npm install eslint-plugin-zod
INSTALL
IMPORT
SIG · ESLINT-PLUGIN-ZOD
E
eslint-plugin-zod
testingjavascriptv3.8.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

plugin
import zodPlugin from 'eslint-plugin-zod'
const zodPlugin = require('eslint-plugin-zod')
ESM-only since v3. Requires Node >=20. ESLint 9+ flat config expects default import.
rules
import { rules } from 'eslint-plugin-zod'
Named export for accessing rule definitions programmatically.
configs.recommended
import zodPlugin from 'eslint-plugin-zod'; const config = [zodPlugin.configs.recommended];
import { configs } from 'eslint-plugin-zod'
Configs are nested under default export. Direct named import fails.

Flat config setup using the recommended config and custom rule configuration.

// eslint.config.js import zodPlugin from 'eslint-plugin-zod'; export default [ zodPlugin.configs.recommended, { rules: { 'zod/require-schema-suffix': ['error', { suffix: 'Schema', excludeFormattingUtils: true }], 'zod/prefer-string-schema-with-trim': 'error', }, }, ];
Debug
Known issues
breakingv3 requires ESLint 9+ (flat config). ESLint 8 is not supported.
fix
Migrate to ESLint 9 and use flat config format. See eslint-plugin-zod migration guide.
affects: >=3.0
breakingv3 requires Node >=20. Older Node versions cause import errors.
fix
Upgrade Node to v20 or later.
affects: >=3.0
deprecatedLegacy rules like 'zod/prefer-enum' are removed and may cause lint errors if still referenced.
fix
Remove or replace deprecated rule names from config.
affects: >=3.0
gotchaPlugin does not support ESLint's .eslintrc (JSON/JS) config format; only flat config.
fix
Use eslint.config.js with flat config.
affects: >=3.0
gotchaSome rules (e.g., consistent-schema-output-type-style) are auto-fixable; review fixes as they may alter inferred types.
fix
Review changes before applying --fix; use suggestions for manual review.
affects: >=3.8.0
Errors
Common errors & fixes
Error: Cannot find module 'eslint-plugin-zod'
Package not installed or incorrect import path.
fix
npm install eslint-plugin-zod --save-dev
Configuration for rule "zod/require-schema-suffix" is invalid: Value {"suffix":"Schema","excludeFormattingUtils":true} should NOT have additional properties.
The 'excludeFormattingUtils' option was added in v3.5.1; older versions throw error.
fix
Update eslint-plugin-zod to >=3.5.1 or remove the option.
TypeError: Cannot read properties of undefined (reading 'configs')
Importing configs as named export instead of default.
fix
Use `import zodPlugin from 'eslint-plugin-zod'` and then `zodPlugin.configs.recommended`.
ESLint: Error: Failed to load plugin 'zod': Cannot find module 'zod'
Missing peer dependency 'zod'.
fix
npm install zod
Upgrade
Version history
3.8.0latest on npm
Audit
Dependencies
eslintrequiredPeer dependency for core ESLint functionality
zodrequiredPeer dependency for runtime use of Zod
oxlintoptionalOptional peer dependency for Oxlint support (v3.7.0+)
Agent activity
16 hits · last 30 days
node
10
Resources
eslint-plugin-zod — npm install eslint-plugin-zod · libregistry