1.0.1 • Published 2 years ago
wobe-validator v1.0.1
What is wobe validator ?
Wobe has a validator beforeHandler hook that allows you to validate the request body. It can be considered as an equivalent of express-validator for Express.
Because validator's hook uses typebox in background, it is in a separate package to avoid unnecessary dependencies on the main package if you don't want to use this hook.
Install
bun install wobe-validator # On bun
npm install wobe-validator # On npm
yarn add wobe-validator # On yarnBasic example
In this example, we will check if the body of the request is an object with a name field that is a string. If the validation fails, the request will be rejected with a 400 status code.
import { Wobe } from 'wobe'
import { wobeValidator } from 'wobe-validator'
import { Type as T } from '@sinclair/typebox'
const wobe = new Wobe()
const schema = T.Object({
name: T.String(),
})
wobe.post(
'/test',
(ctx) => {
return ctx.res.send('ok')
},
wobeValidator(schema),
)
wobe.listen(3000)In the above example the following request will be accepted:
// Success
await fetch(`http://127.0.0.1:3000/test`, {
method: 'POST',
body: JSON.stringify({ name: 'testName' }),
headers: {
'Content-Type': 'application/json',
},
})The following request will be rejected:
// Failed
await fetch(`http://127.0.0.1:3000/test`, {
method: 'POST',
body: JSON.stringify({ name: 42 }),
headers: {
'Content-Type': 'application/json',
},
})Options
The wobeValidator function accepts a schema in input that is the typebox schema. See here for more informations.