Skip to content

sl45sms/cast-with-schema

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cast-with-schema

NPM version

The way to cast data to types specified with JSON schema.

Arguments

  • source (object) - Source object to be casted.
  • schema (object) - JSON schema containing types definitions.
  • options (object)
    • allowNaN — Whether or not to return NaN for non-parseable numbers. The default is false which will cast NaN to 0.

Example

May be used for query params casting:

const qs = require('qs');
const castWithSchema = require('cast-with-schema');

const schema = {
  type: "object",
  properties: {
    param1: {
      type: 'string',
    },
    param2: {
      type: 'integer',
    },
    param3: {
      type: 'number',
    },
    param4: {
      type: 'boolean',
    },
  }
};

const query = 'param1=value&param2=777&param3=7.77&param4=false';
const parsed = qs.parse(query);
const casted = castWithSchema(query, schema);

/*
  `casted` is now:
  {
    param1: 'value',
    param2: 777,
    param3: 7.77,
    param4: false,
  }
*/

Supports null if schema is either:

type: ['..', 'null']

or

anyOf: [
  { type: '..' },
  { type: 'null' }
]

See also

Check out tinsypec for more smart JSON schema use cases.

About

Casting JS objects to correct types using JSON schemas

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%