cast-with-schema

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¶m2=777¶m3=7.77¶m4=false';
const parsed = qs.parse(query);
const casted = castWithSchema(query, schema);
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.