json-schema-empty
v1.1.1
Published
[][travis] [][coveralls] [.
Usage
To install json-schema-empty, run:
npm install romeovs/json-schema-empty --saveThe api is simple:
import empty from 'json-schema-empty';
var schema = {
type: 'object'
, properties: {
foo: {
type: 'integer'
, minimum: 12
, multipleOf: 5
}
, bar: {
type: 'array'
, items: { type: 'integer' }
, minItems: 3
}
, baz: {
type: 'string'
minLength: 5
}
}
, required: [ 'foo', 'bar', 'baz' ]
};
console.log(empty(schema));
// logs:
// {
// foo: 15,
// bar: [ 0, 0, 0 ],
// baz: ''
// }Rules
string: because it impossible to guess what the string content should be, even when patterns and length limits are given, a string schema always results in the empty string:
''.integer:
json-schema-emptytries to satisfy theminimum,maximumandmultipleOfconstraints whenever possible wth the additional property that, when it is possible,0is returned.number: just follows the
integerschema.object: tries to create a minimal object with as few keys as possible. Only keys that are in the
requiredarray are generated.Object size is ignored completely, for the same reason that the strings are empty: we cannot guess the keys.
array: when the
itemtype is given, andminItemsis given, the shortest array that matches this is generated. It also works whenitemsis a tuple.maxItemsis ignored. Whenever possible, the empty array is returned.boolean: always results in
false.null: always results in
null.oneOf, anyOf: selects one of the accepted types and goes from there.
allOf:
json-schema-emptymerges all schemas and works from that schema to generate a value.enum: selects the first possible value.
$ref: just works!
Whenever specified, json-schema-empty uses the default value (even if it
does not match the schema).
License
This code is licensed under the ISC license
