@zod-plugin/effect
v0.1.0
Published
TypeScript-first schema declaration and validation library with static type inference
Downloads
3
Maintainers
Readme
Effect
plugin for Zod
This is a plugin to add support for Effect
to Zod. Effect provides a foundation for writing TypeScript in a functional, composable way. Refer to the Effect docs for details.
Usage
Requirements (peer dependencies):
zod@^3.0.0
effect@^3.0.0
To install the plugin:
npm add effect zod @zod-plugin/effect
To use the plugin, add the following line in the entry point of your application:
import "@zod-plugin/effect";
This adds two new methods to the ZodType
base class. These methods are now available on all schemas throughout your application.
.effect.parse(data): Effect<T, ZodError, never>
This method accepts some input data and parses it asynchronously.
import * as z from "zod";
import { Effect } from "effect";
import "@zod-plugin/effect";
const schema = z.object({
name: z.string(),
});
const effect = schema.effect.parse({ name: "Michael Arnaldi" });
//=> Effect<{ name: string }, ZodError, never>;
await Effect.runPromise(effect);
// => { name: "Michael Arnaldi" }
.effect.parseSync(data): Effect<T, ZodError, never>
This method accepts some input data and parses it synchronously. If any asynchronous refinements or transforms are encountered, Effect will throw an error.
import * as z from "zod";
import { Effect } from "effect";
import "@zod-plugin/effect";
const schema = z.object({
name: z.string(),
});
const effect = schema.effect.parseSync({ name: "Michael Arnaldi" });
//=> Effect<{ name: string }, ZodError, never>;
await Effect.runSync(effect);
// => { name: "Michael Arnaldi" }