@marblejs/middleware-joi
v3.5.2
Published
A joi validation middleware for Marble.js
Downloads
172
Maintainers
Readme
@marblejs/middleware-joi
A joi validation middleware for Marble.js.
Deprecation
@marblejs/middleware-joi
is deprecated since v2.0.
Please use @marblejs/middlware-io
instead.
Installation
$ npm i @marblejs/middleware-joi
Requires @marblejs/core
to be installed.
Documentation
For the latest updates, documentation, change log, and release information visit docs.marblejs.com and follow @marble_js on Twitter.
Usage
Example of using this middleware on a GET route to validate params.
import { validator$, Joi } from '@marblejs/middleware-joi';
const foo$ = r.pipe(
r.matchPath('/foo/:id'),
r.matchType('GET'),
r.useEffect(req$ => req$.pipe(
use(validator$({
params: Joi.object({
id: Joi.number().min(1).max(10),
})
}));
// ...
)));
Example to validate all incoming requests.
import { validator$, Joi } from '@marblejs/middleware-joi';
const middlewares = [
logger$,
validator$({
headers: Joi.object({
sign: Joi.string(),
accept: Joi.string().default('application/json'),
}),
params: Joi.object({
apiKey: Joi.string().token().required(),
})
})
];
const effects = [
endpoint1$,
endpoint2$,
...
];
const app = httpListener({ middlewares, effects });
License: MIT