@marblejs-contrib/middleware-joi
A Joi validation middleware for Marble.js.
Last updated
yarn add @marblejs-contrib/middleware-joiimport { validator$ } from '@marblejs-contrib/middleware-joi';validator$ :: (Schema, Joi.ValidationOptions) -> HttpMiddlewareEffectimport { r } from '@marblejs/http';
import { validator$, Joi } from '@marblejs-contrib/middleware-joi';
const foo$ = r.pipe(
r.matchPath('/'),
r.matchType('GET'),
r.useEffect(req$ => req$.pipe(
use(validator$({
query: Joi.object({
id: Joi.number().min(1).max(10),
})
}));
// ...
)));{
error: {
status: 400,
message: '"id" is required'
}
}import { validator$, Joi } from '@marblejs-contrib/middleware-joi';
const middlewares = [
// ...
validator$(
{
headers: Joi.object({
token: Joi.string().token().required(),
accept: Joi.string().default('application/json')
})
},
{ stripUnknown: true },
)
];
const effects = [
endpoint1$,
endpoint2$,
...
];
const app = httpListener({ middlewares, effects });