# Effect Schema Validator Middleware for Hono This package provides a validator middleware using [Effect Schema](https://github.com/Effect-TS/effect/blob/main/packages/schema/README.md) for [Hono](https://honojs.dev) applications. With this middleware, you can define schemas using Effect Schema and validate incoming data in your Hono routes. ## Why Effect Schema? Effect Schema offers several advantages over other validation libraries: 1. Bidirectional transformations: Effect Schema can both decode and encode data. 2. Integration with Effect: It inherits benefits from the Effect ecosystem, such as dependency tracking in transformations. 3. Highly customizable: Users can attach meta-information through annotations. 4. Functional programming style: Uses combinators and transformations for schema definition. ## Usage ```ts import { Hono } from 'hono' import { Schema as S } from '@effect/schema' import { effectValidator } from '@hono/effect-validator' const app = new Hono() const User = S.Struct({ name: S.String, age: S.Number, }) app.post('/user', effectValidator('json', User), (c) => { const user = c.req.valid('json') return c.json({ success: true, message: `${user.name} is ${user.age}`, }) }) ``` ## API ### `effectValidator(target, schema)` - `target`: The target of validation ('json', 'form', 'query', etc.) - `schema`: An Effect Schema schema ## Author Günther Brunner ## License MIT