@marblejs/middleware-joi
TypeScript icon, indicating that this package has built-in type declarations

3.5.2 • Public • Published

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

/@marblejs/middleware-joi/

    Package Sidebar

    Install

    npm i @marblejs/middleware-joi

    Weekly Downloads

    12

    Version

    3.5.2

    License

    MIT

    Unpacked Size

    11.4 kB

    Total Files

    16

    Last publish

    Collaborators

    • jflakus