is-okay
v1.1.1
Published
Simple and fast type validator
Downloads
68
Readme
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
Typedefs
Rule
{Rule} Validation configurator
Kind: global class
- Rule
- .string() ⇒ this
- .number() ⇒ this
- .boolean() ⇒ this
- .default(defaultValue) ⇒ this
- .is(message, fn) ⇒ this
- .notEmpty() ⇒ this
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
| Param | Type | | --- | --- | | defaultValue | * |
rule.is(message, fn) ⇒ this
Adds validator
Kind: instance method of Rule
| Param | Type | | --- | --- | | message | string | | fn | validator |
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 |