@marblejs/middleware-joi

A joi validation middleware for Marble.js

Stats

StarsIssuesVersionUpdatedCreatedSize
@marblejs/middleware-joi
1,79473.5.12 months ago3 years agoMinified + gzip package size for @marblejs/middleware-joi in KB

Readme

Marble.js logo

@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

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.