1.1.1 • Published 5 years ago

is-okay v1.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

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

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

ParamType
defaultValue*

rule.is(message, fn) ⇒ this

Adds validator

Kind: instance method of Rule

ParamType
messagestring
fnvalidator

rule.notEmpty() ⇒ this

Value should not be empty (not falsey)

Kind: instance method of Rule

ValidationError : Error

Kind: global typedef
Properties

NameType
invalidKeystring
statusnumber
statusCodenumber

validator : function

Validator callback

Kind: global typedef

ParamTypeDescription
value*found value
key*a key, where the value was found
1.1.1

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago

0.2.0

5 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago