@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

    Install

    npm i @marblejs/middleware-joi

    DownloadsWeekly Downloads

    7

    Version

    3.5.2

    License

    MIT

    Unpacked Size

    11.4 kB

    Total Files

    16

    Last publish

    Collaborators

    • jflakus