joi-siren

1.1.0 • Public • Published

joi-siren

Converts Joi schema into a Siren action fields.

Install

npm install joi-siren

Rules

  • The root of the schema must be an object
  • Supports these Joi types: Boolean, Number, Object and String

Examples

For an exhaustive list of examples see the tests

const Joi = require('joi');
const schemaToFields = require('joi-siren');

Simple

const schema = {
  single: Joi.string(),
};

const fields = schemaToFields(schema);
// [ { name: 'single', type: 'text' } ]

Nested with multiple types

const schema = {
  outer: {
    inner: Joi.string(),
    layer2_1: {
      layer3: {
        mostInner: Joi.number(),
      },
    },
    layer2_2: {
      reallyInner: Joi.boolean(),
    },
  },
};

const fields = schemaToFields(schema);
//  [
//    { name: 'outer[inner]', type: 'text' },
//    { name: 'outer[layer2_1][layer3][mostInner]', type: 'number' },
//    { name: 'outer[layer2_2][reallyInner]', type: 'checkbox' }
//  ]

Exact values

const schema = {
  outer: {
    inner: 'this is the only value',
  },
};

const fields = schemaToFields(schema);
//  [ { name: 'outer[inner]', type: 'text', value: 'this is the only value' } ]

Package Sidebar

Install

npm i joi-siren

Weekly Downloads

12

Version

1.1.0

License

MIT

Unpacked Size

15.1 kB

Total Files

7

Last publish

Collaborators

  • mpeters-binsentry
  • binsentryengineering
  • nathanhoel
  • stephenwright
  • ruben-binsentry