Skip to content

Getting Started

Installation

Install the plugin:

bash
npm add zod@latest
npm add -D unplugin-valype
bash
yarn add zod@latest
yarn add -D unplugin-valype
bash
pnpm add zod@latest
pnpm add -D unplugin-valype
bash
bun add zod@latest
bun add -D unplugin-valype

zod's version should be 3.25.0 at least, but we recommend using zod v4 for the best experience, because valype generates zod v4 schema

Configuration

Add the plugin to your build tool configuration:

Vite
ts
// vite.config.ts
import valype from 'unplugin-valype/vite'

export default defineConfig({
  plugins: [
    valype({ /* options */ }),
  ],
})
Rollup
ts
// rollup.config.js
import valype from 'unplugin-valype/rollup'

export default {
  plugins: [
    valype({ /* options */ }),
  ],
}
Webpack
ts
// webpack.config.js
module.exports = {
  plugins: [
    require('unplugin-valype/webpack')({ /* options */ })
  ]
}
Nuxt
ts
// nuxt.config.js
export default defineNuxtConfig({
  modules: [
    ['unplugin-valype/nuxt', { /* options */ }],
  ],
})
Vue CLI
ts
// vue.config.js
module.exports = {
  configureWebpack: {
    plugins: [
      require('unplugin-valype/webpack')({ /* options */ }),
    ],
  },
}
esbuild
ts
// esbuild.config.js
import { build } from 'esbuild'
import valype from 'unplugin-valype/esbuild'

build({
  plugins: [valype()],
})

Usage

  1. Define your types (use .valype.ts extension):
typescript
// user.valype.ts
export interface User {
  name: string
  age: number
}
  1. Use the generated validator:
typescript
import { validateUser } from './user.valype'

const issues = validateUser(data) // Returns ZodIssue[] or undefined
if (issues) {
  // Handle validation errors
}

For IDE/editor integration (VSCode extension, TypeScript plugin, etc.), see Editor & IDE Integration.

Validator Signature

unplugin-valype generates validators for types exported from *.valype.ts files:

typescript
export declare function validateSome(data: unknown): ZodIssue[] | undefined
  • Returns undefined when validation passes
  • Returns ZodIssue[] with error details when validation fails

Note: You typically don't need to use valype package directly, just use the generated validators.