Registry / testing / eslint-plugin-zod-v4

eslint-plugin-zod-v4

JSON →
library0.3.0jsnpmunverified

ESLint plugin for Zod v4 best practices and migration from v3. Current stable version 0.3.0. Actively maintained, with breaking change detection and auto-fix support. Differentiator: educational rule messages, React-aware for memoization, and flat config support for ESLint 9+. Covers all major breaking changes from Zod v3 to v4, such as string format methods, record signature, error handling, and object methods.

npm install eslint-plugin-zod-v4
INSTALL
IMPORT
SIG · ESLINT-PLUGIN-ZOD-
E
eslint-plugin-zod-v4
testingjavascriptv0.3.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

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

default
✓ import zodPlugin from 'eslint-plugin-zod-v4'
✗ const zodPlugin = require('eslint-plugin-zod-v4')
Plugin is ESM-only; CommonJS require is not supported.
configs
✓ import { configs } from 'eslint-plugin-zod-v4'
✗ const { configs } = require('eslint-plugin-zod-v4')
Named import for configs; also ESM-only.
rules
✓ import { rules } from 'eslint-plugin-zod-v4'
Can access individual rules via the rules object.

Minimal flat config for ESLint 9+ using recommended config and custom rules.

// eslint.config.js import zodPlugin from 'eslint-plugin-zod-v4' export default [ zodPlugin.configs.recommended, { rules: { 'zod-v4/prefer-safeParse': 'warn', 'zod-v4/no-throw-in-refine': 'error', }, }, ]
Debug
Known issues
breakingz.string().email() is removed in Zod v4; use z.email() instead.
fix
Replace z.string().email() with z.email().
affects: >=0.1.0
breakingz.record(singleArg) is removed; require two arguments.
fix
Use z.record(keySchema, valueSchema).
affects: >=0.1.0
breakingerror.errors is removed; use error.issues instead.
fix
Replace error.errors with error.issues.
affects: >=0.1.0
breaking.merge() is removed; use .extend() instead.
fix
Replace .merge() with .extend().
affects: >=0.1.0
breaking.superRefine() is removed; use .check() instead.
fix
Replace .superRefine() with .check().
affects: >=0.1.0
breakingz.nativeEnum() is removed; use z.enum() instead.
fix
Replace z.nativeEnum() with z.enum().
affects: >=0.1.0
deprecatedinvalid_type_error/required_error params are deprecated; use 'error' param.
fix
Use the 'error' param instead of invalid_type_error/required_error.
affects: >=0.1.0
Errors
Common errors & fixes
Error: Cannot find module 'eslint-plugin-zod-v4'
Plugin not installed or not resolved correctly in ESLint config.
fix
Run 'npm install --save-dev eslint-plugin-zod-v4' and ensure it's in node_modules.
ESLint couldn't find the config 'plugin:zod-v4/recommended'
Using legacy eslintrc style with a plugin that only supports flat config.
fix
Use flat config (eslint.config.js) and import the plugin directly: import zodPlugin from 'eslint-plugin-zod-v4'
Cannot read properties of undefined (reading 'recommended')
Trying to destructure configs via CommonJS require.
fix
Use ESM import: import { configs } from 'eslint-plugin-zod-v4'
Upgrade
Version history
0.3.0latest on npm
Audit
Dependencies
eslintrequiredPeer dependency: requires ESLint >=9.0.0 for flat config support
Agent activity
4 hits · last 30 days
node
4
Resources