honojs-middleware/packages/typia-validator
Yusuke Wada 5403955ef6
chore: enable `eslint` and remove `denoify` (#300)
* changeset

* chore: enable `eslint` and remove `denoify`
2023-12-13 17:22:53 +09:00
..
src chore: enable `eslint` and remove `denoify` (#300) 2023-12-13 17:22:53 +09:00
test chore: enable `eslint` and remove `denoify` (#300) 2023-12-13 17:22:53 +09:00
CHANGELOG.md Version Packages (#218) 2023-10-30 06:46:28 +09:00
README.md feat: Add Typia validator (#158) 2023-09-15 22:54:56 +09:00
jest.config.js feat: Add Typia validator (#158) 2023-09-15 22:54:56 +09:00
package.json chore: migrate to `yarn v4` (#299) 2023-12-13 15:54:00 +09:00
tsconfig.cjs.json feat: Add Typia validator (#158) 2023-09-15 22:54:56 +09:00
tsconfig.esm.json feat: Add Typia validator (#158) 2023-09-15 22:54:56 +09:00
tsconfig.json feat: Add Typia validator (#158) 2023-09-15 22:54:56 +09:00

README.md

Typia validator middleware for Hono

The validator middleware using Typia for Hono applications.

Usage

import typia, { tags } from 'typia'
import { typiaValidator } from '@hono/typia-validator'

interface Author {
    name: string
    age: number & tags.Type<'uint32'> & tags.Minimum<20> & tags.ExclusiveMaximum<100>
  }

  const validate = typia.createValidate<Author>()

  const route = app.post('/author', typiaValidator('json', validate), (c) => {
    const data = c.req.valid('json')
    return c.jsonT({
      success: true,
      message: `${data.name} is ${data.age}`,
    })
  })

Hook:

app.post(
  '/post',
  typiaValidator('json', validate, (result, c) => {
    if (!result.success) {
      return c.text('Invalid!', 400)
    }
  })
  //...
)

Author

Patryk Dwórznik https://github.com/dworznik

License

MIT