es-schema
Bind an object to a defined schema.
If type is wrong, it will throw an error.
Usage
Defined a schema
const mySchema = {
use_constructor_function: String,
use_array_literal: [],
use_array_literal_with_type: [Number],
use_object_literal: {},
use_object_literal_with_definition: {
use_defined_schema: SubSchema
},
use_a_value_as_default: "es"
};
Write an object
const myData = {
use_constructor_function: "yes",
use_array_literal: [1, "mixed is ok"],
use_array_literal_with_type: [0, 2, ],
use_object_literal: null,
use_object_literal_with_definition: {},
self_property: "hello"
};
Generate an instance
const strictBinder = new Schema(Schema.strict, false);
const ignoreBinder = new Schema(Schema.ignoreUndefined, false);
const fillBinder = new Schema(Schema.fillWithDefault, false);
const extendBinder = new Schema(Schema.fillWithDefault, true);
Bind data to schema
const output1 = strictBinder.bind(myData, mySchema);
const output2 = ignoreBinder.bind(myData, mySchema);
const output3 = fillBinder.bind(myData, mySchema);
const output4 = extendBinder.bind(myData, mySchema);