一覧へ戻る
samchungy/eslint-plugin-import-zod(新しいタブで開きます)
主要言語: TypeScript
ESLint plugin to enforce namespace imports for Zod
- star 数
- 53
- watcher 数
- 0
- fork 数
- 2
- issue 数
- 2
- 最終更新
- 2026/07/17
主要言語: TypeScript
ESLint plugin to enforce namespace imports for Zod
For Oxlint users please install oxlint-plugin-import-zod
ESLint plugin to enforce namespace imports for zod. This plugin provides a rule that ensures all imports of zod use the namespace import style (import * as z from "zod";) instead of named imports or default imports to promote better tree-shaking and reduce bundle sizes. See this Zod issue comment for a more detailed explanation.
pnpm add -D eslint-plugin-import-zod
// eslint.config.js import importZod from "eslint-plugin-import-zod"; export default [ // Include the plugin's recommended config ...importZod.configs.recommended, // Or configure it manually { plugins: { "import-zod": importZod, }, rules: { "import-zod/prefer-zod-namespace": "error", }, }, ];
This rule enforces using namespace imports for zod instead of named imports or default imports.
// Importing z directly import { z } from "zod"; // Default imports (any name) import z from "zod"; import zod from "zod"; import zodSchema from "zod"; // Type default imports import type z from "zod"; import type zod from "zod"; // Mixed default and named imports import z, { toJSONSchema } from "zod"; import zod, { ZodError } from "zod"; // Importing z from 'zod/v4' import { z } from "zod/v4"; import z from "zod/v4"; // Importing z from 'zod/v4-mini' import { z } from "zod/v4-mini"; // Type-only imports import type { z } from "zod"; // Importing z along with other exports import { ZodError, z } from "zod"; // Type-only imports with multiple exports import type { ZodError, z } from "zod"; // Importing z with type modifiers import { type ZodError, z } from "zod"; // Importing submodules from zod/v4 import { core } from "zod/v4";
// Using namespace import import * as z from "zod"; // Using namespace import with any name import * as zod from "zod"; import * as zodSchema from "zod"; // Importing z from 'zod/v4' import * as z from "zod/v4"; // Importing z from 'zod/v4-mini' import * as z from "zod/v4-mini"; // Using type namespace import import type * as z from "zod"; import type * as zod from "zod"; // Other imports from zod that don't include 'z' import { ZodError } from "zod"; // Type imports that don't include 'z' import type { ZodError } from "zod"; // Importing submodule as namespace with proper path import * as core from "zod/v4/core";
This rule is automatically fixable. When using --fix, ESLint will:
import { z } from 'zod'; to import * as z from 'zod';import z from 'zod'; to import * as z from 'zod';import zod from 'zod'; to import * as zod from 'zod';import type z from 'zod'; to import type * as z from 'zod';import type { z } from 'zod'; to import type * as z from 'zod';import { core } from 'zod/v4'; to import * as core from 'zod/v4/core';import { ZodError, z } from 'zod'; into:
import * as z from "zod"; import { ZodError } from "zod";
import z, { toJSONSchema } from 'zod'; into:
import * as z from "zod"; import { toJSONSchema } from "zod";
import type { ZodError, z } from 'zod'; into:
import type * as z from "zod"; import type { ZodError } from "zod";
import { type ZodError, z } from 'zod';:
import * as z from "zod"; import { type ZodError } from "zod";