0.1.0 • Published 1 year ago

@zod-plugin/effect v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

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" }
0.1.0

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.1

1 year ago