UNPKG

@polyn/blueprint

Version:

An easy to use, flexible, and powerful validation library for nodejs and browsers

53 lines (45 loc) 1.33 kB
module.exports = { name: 'registerCommonTypes', factory: (is, Blueprint) => { 'use strict' const { registerType } = Blueprint const types = [ 'function', 'asyncFunction', 'promise', 'object', 'array', 'boolean', 'date', 'number', 'decimal', 'regexp', 'primitive', // 'string' registered separately, below ] const errorMessage = (type) => (key, value) => `expected \`${key}\` {${is.getType(value)}} to be {${type}}` types.forEach((type) => { registerType(type, ({ key, value }) => { return is[type](value) ? { err: null, value } : { err: new Error(errorMessage(type)(key, value)) } }) }) registerType('string', ({ key, value }) => { if (is.string(value)) { const trimmed = value.trim() if (trimmed.length) { return { value: trimmed } } return { err: new Error(`expected \`${key}\` {${is.getType(value)}} to not be an empty string`) } } else { return { err: new Error(errorMessage('string')(key, value)) } } }) registerType('any', ({ key, value }) => { return is.not.nullOrUndefined(value) ? { err: null, value } : { err: new Error(errorMessage('any')(key, value)) } }) }, }