1.1.0 • Published 7 years ago
joi-siren v1.1.0
joi-siren
Converts Joi schema into a Siren action fields.
Install
npm install joi-sirenRules
- 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' } ]