is-okay

1.1.1 • Public • Published

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

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

Readme

Keywords

Package Sidebar

Install

npm i is-okay

Weekly Downloads

8

Version

1.1.1

License

MIT

Unpacked Size

16.8 kB

Total Files

8

Last publish

Collaborators

  • davidmenger
  • wingbot.ai