The flatSchemaUtils provides a set of functions for working with flattened schemas generated from objects. These functions allow you to generate, merge, validate, compare, and sort schemas.
This article provides information on the following:
generate(obj, options)
Generates a flattened schema from the provided object.
Parameters
obj(*): The object to generate a flattened schema from.options(optional) (Object): The generation options.ignoreCase(optional) (Boolean): If set totrue, field name case will be ignored.
Returns
object[]: The flattened schema.
Example
let obj = {
name: "Peter Parker",
alias: "Spiderman",
city: "New York City",
age: 18
}
const flattenedSchema = flatSchemaUtils.generate(obj);
// flattenedSchema = [
// {
// "type": "string",
// "fieldName": "name",
// "path": "",
// "fullPath": "name",
// "hasNull": false,
// "instances": 1,
// "format": null,
// "stringLength": 12
// },
// {
// "type": "string",
// "fieldName": "alias",
// "path": "",
// "fullPath": "alias",
// "hasNull": false,
// "instances": 1,
// "format": null,
// "stringLength": 9
// },
// {
// "type": "string",
// "fieldName": "city",
// "path": "",
// "fullPath": "city",
// "hasNull": false,
// "instances": 1,
// "format": null,
// "stringLength": 13
// },
// {
// "type": "integer",
// "fieldName": "age",
// "path": "",
// "fullPath": "age",
// "hasNull": false,
// "instances": 1,
// "format": null,
// "stringLength": null
// }
// ]
mergeSchemas(...schemas)
Merges multiple schemas together.
Parameters
schemas(Object[]): An array of schemas to merge.
Returns
object[]: The merged schemas.
validate(data, schema, options)
Validates an object against a schema.
Parameters
data(*): The data to validate.schema(Object[]): The flat schema to validate against.options(optional) (Object): The validation options.
Returns
object[]|null: An array of validation results ornullif the data is valid against the schema.
compareSchemas(schema1, schema2, options)
Compares two schemas for differences.
Parameters
schema1(Object[]): The first schema to compare.schema2(Object[]): The second schema to compare.options(optional) (Object): The comparison options.
Returns
object[]: An array of comparison results.
sortSchema(schema)
Sorts a schema by path.
Parameters
schema(Object[]): The schema to sort.
Returns
object[]: The sorted schema.
