Skip to main content
Home

Built and signed on GitHub Actions

This package provides a validator middleware using Effect Schema for Hono applications. With this middleware, you can define schemas using Effect Schema and validate incoming data in your Hono routes.

This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
76%
Published
2 weeks ago (1.2.0)

Effect Schema Validator Middleware for Hono

codecov

This package provides a validator middleware using Effect Schema for Hono 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

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 https://github.com/gunta

License

MIT

Built and signed on
GitHub Actions

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@hono/effect-validator

Import symbol

import * as effect_validator from "@hono/effect-validator";
or

Import directly with a jsr specifier

import * as effect_validator from "jsr:@hono/effect-validator";

Add Package

pnpm i jsr:@hono/effect-validator
or (using pnpm 10.8 or older)
pnpm dlx jsr add @hono/effect-validator

Import symbol

import * as effect_validator from "@hono/effect-validator";

Add Package

yarn add jsr:@hono/effect-validator
or (using Yarn 4.8 or older)
yarn dlx jsr add @hono/effect-validator

Import symbol

import * as effect_validator from "@hono/effect-validator";

Add Package

vlt install jsr:@hono/effect-validator

Import symbol

import * as effect_validator from "@hono/effect-validator";

Add Package

npx jsr add @hono/effect-validator

Import symbol

import * as effect_validator from "@hono/effect-validator";

Add Package

bunx jsr add @hono/effect-validator

Import symbol

import * as effect_validator from "@hono/effect-validator";