Casting JS objects to correct types using JSON schemas
npm install cast-with-schemaThe way to cast data to types specified with JSON schema.
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.May be used for query params casting:
``js
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¶m2=777¶m3=7.77¶m4=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' }
]
Check out tinsypec for more smart JSON schema use cases.