1.1.0 • Published 2 years ago
@0y0/type v1.1.0
@0y0/type ·

Type checking utils.
Installation
npm install @0y0/type --saveUsage
const t = require('@0y0/type')
const objConstraint = t.object.is({
num: t.number.gte(0).required,
str: t.string.match(/\d+/).required
}).required
const result = objConstraint.validate({ num: 1, str: '1' })
// result = { valid: true, errors: [] }
const result = objConstraint.validate({ num: 0, str: '1' })
// result = {
// valid: false,
// errors: [{ name: 'num', expected: 'gte(0)', actual: 0 }]
// }Built-in constraints
boolbool.requiredbool.truthybool.falsy
numbernumber.requirednumber.eq(<number>)number.neq(<number>)number.gt(<number>)number.gte(<number>)number.lt(<number>)number.lte(<number>)
decimaldecimal.requireddecimal.eq(<number|string>)decimal.neq(<number|string>)decimal.gt(<number|string>)decimal.gte(<number|string>)decimal.lt(<number|string>)decimal.lte(<number|string>)
stringstring.requiredstring.lenEq(<number>)string.emptystring.notEmptystring.match(<regexp>)
timetime.requiredtime.eq(<number|string|Date>)time.neq(<number|string|Date>)time.gt(<number|string|Date>)time.gte(<number|string|Date>)time.lt(<number|string|Date>)time.lte(<number|string|Date>)
arrayarray.requiredarray.lenEq(<number>)array.emptyarray.notEmptyarray.of(<itemConstraint>)array.is([<itemConstraint>, ...])
objectobject.requiredobject.eq(<object>)object.match(<object>)object.is({ key: <constraint>, ... })object.like({ key: <constraint>, ... })
nileq(<any>)eq(<any>).required
neq(<any>)neq(<any>).required
oneOf([<any>, ...])oneOf([<any>, ...]).required
valueOf({ key: <any>, ... })valueOf({ key: <any>, ... }).required
useuse(({ parent, value }) => constraint).required