chained-schema v1.0.0
chained-schema
Concise JSON Schema type builders.
Install
npm install chained-schemaUsage
import { object, array, number, boolean, string } from 'chained-schema';
const phoneNumber = string.pattern(/\(?\d\d\d\)?-?\d\d\d-?\d\d\d\d/);
const user = object
.required('firstName', 'lastName')
.props({
firstName: string,
lastName: string,
email: string.nullable,
phoneNumber: phoneNumber.nullable,
password: string.default('secret').minLength(5),
});API
Properties that require inputs are called as functions. Properties that don't require inputs are just chained as getters.
For example number.maximum takes an argument, but number.nullable doesn't, so it's a getter instead of a method.
number.minimum(0).nullable.maximum(10)array
items(items)
additionalItems(additionalItems)
get uniqueItems
object
props(p)
properties(properties)
dependencies(dependencies)
patternProperties(patternProperties)
additionalProperties(additionalProperties)
propertyNames(propertyNames)
minProperties(minProperties)
maxProperties(maxProperties)
string
minLength(minLength)
maxLength(maxLength)
format(format)
pattern(regex)
number
minimum(minimum)
maximum(maximum)
exclusiveMinimum(exclusiveMinimum)
exclusiveMaximum(exclusiveMaximum)
multipleOf(multipleOf)
integer
Same as number.
boolean
No custom boolean options.
nill (null)
No custom null options.
Combining Schemas
allOf
anyOf
oneOf
not
7 years ago