zod-neverthrow
v1.3.0
Published
A lightweight TypeScript utility that integrates Zod schema validation with the Result type from neverthrow for streamlined robust error handling.
Maintainers
Readme
zod-neverthrow
A lightweight TypeScript utility that integrates Zod schema validation with the Result type from neverthrow for streamlined robust error handling.
Installation
npm install zod-neverthrow zod neverthrow
# or
pnpm add zod-neverthrow zod neverthrowDependencies
This package requires the following peer dependencies:
Usage
zod/v4 (functional)
import { z } from 'zod/v4';
import { neverthrowParse } from 'zod-neverthrow/v4';
const UserSchema = z.object({
name: z.string(),
age: z.number(),
enabled: z.boolean(),
});
// Result<{ name: string; age: number; enabled: boolean; }, z.$ZodError<{ name: string; age: number; enabled: boolean; }>>
const result = neverthrowParse(UserSchema, {
name: 'John Doe',
age: 30,
enabled: true,
});
result.match(
(user) => console.log('User processed successfully:', user),
(error) => console.error('Invalid user data:', error.errors),
);zod/v3 (functional)
import { z } from 'zod/v3';
import { neverthrowParse } from 'zod-neverthrow/v3';
const UserSchema = z.object({
name: z.string(),
age: z.number(),
enabled: z.boolean(),
});
// Result<{ name: string; age: number; enabled: boolean; }, z.ZodError<any>>
const result = neverthrowParse(UserSchema, {
name: 'John Doe',
age: 30,
enabled: true,
});
result.match(
(user) => console.log('User processed successfully:', user),
(error) => console.error('Invalid user data:', error.errors),
);zod/v3 (legacy monkey patching)
import { z } from 'zod';
import 'zod-neverthrow';
const UserSchema = z.object({
name: z.string(),
age: z.number(),
enabled: z.boolean(),
});
// Result<{ name: string; age: number; enabled: boolean; }, z.ZodError<any>>
const result = UserSchema.neverthrowParse({
name: 'John Doe',
age: 30,
enabled: true,
});
result.match(
(user) => console.log('User processed successfully:', user),
(error) => console.error('Invalid user data:', error.errors),
);License
MIT License
