IsOkay Validator
Simple
const isOkay = require('is-okay');
const v = isOkay();
v.required('botId')
.string()
.is('not a reseved word [app]', b => b !== 'app')
.is('max 47 chars long', b => b.length <= 47);
v.required('wingbotToken')
.string();
v.optional('tier')
.default('free')
.is('one of allowed values', t => ['free', 'staging', 'production'].includes(t));
const data = v.okay(inputData);
Validates nested objects
const isOkay = require('is-okay');
const v = isOkay();
v.nullable('opt');
v.required('opt.req').string();
assert.deepEqual(v.okay({}), { opt: null });
assert.throws(() => {
v.okay({
opt: {}
});
});
assert.deepEqual(v.okay({
opt: { req: 'a' }
}), { opt: { req: 'a' } });
Reuse the validator for MongoDB updates
All root keys of input will be treated as optional.
const isOkay = require('is-okay');
const v = isOkay();
v.nullable('opt');
v.required('opt.req').string();
v.required('id');
const input = {};
assert.deepEqual(v.okay(input, true), {});
Objects in arrays
const isOkay = require('is-okay');
const v = isOkay();
v.nullable('some.nested');
v.nullable('array[].value');
v.optional('array[].opt').default(1);
v.optional('array[].notHere');
v.required('array[].required');
v.required('required');
v.nullable('some.nested');
v.nullable('array[].value')
.string();
v.optional('array[].opt')
.default(1);
v.optional('array[].notHere');
v.required('array[].required')
.string();
v.required('required')
.number();
assert.deepEqual(v.okay({
required: 1,
notHere: 2,
array: [
{ required: 'abv', removeMe: 4, value: null },
{ required: 'abc', out: 6, opt: 1 }
]
}), {
required: 1,
some: { nested: null },
array: [
{ required: 'abv', opt: 1, value: null },
{ required: 'abc', opt: 2, value: null }
]
});
API
Classes
- Rule
{Rule} Validation configurator
Typedefs
- ValidationError :
Error
- validator :
function
Validator callback
Rule
{Rule} Validation configurator
Kind: global class
rule.string() ⇒ this
Sets filter
Kind: instance method of Rule
rule.number() ⇒ this
Sets filter
Kind: instance method of Rule
rule.boolean() ⇒ this
Sets filter
Kind: instance method of Rule
rule.default(defaultValue) ⇒ this
Sets default value
Kind: instance method of Rule
rule.is(message, fn) ⇒ this
Adds validator
Kind: instance method of Rule
rule.notEmpty() ⇒ this
Value should not be empty (not falsey)
Kind: instance method of Rule
ValidationError : Error
Kind: global typedef
Properties
Name | Type |
---|
invalidKey | string |
status | number |
statusCode | number |
validator : function
Validator callback
Kind: global typedef
Param | Type | Description |
---|
value | * | found value |
key | * | a key, where the value was found |