UNPKG

shurajs

Version:

A simple and extensible json schema extractor for NodeJS

41 lines (32 loc) 1.19 kB
const _ = require('lodash') const { hydrateSchema } = require('./utils') module.exports = { '*': 'string', extract: (schema, value) => { hydrateSchema(schema) if (!_.isString(value)) { schema.onValidationFailed(schema, value, 'not_a_string') return undefined } if (_.isNumber(schema.minLength) && value.length < schema.minLength) { schema.onValidationFailed(schema, value, 'min_length') return undefined } if (_.isNumber(schema.maxLength) && value.length > schema.maxLength) { schema.onValidationFailed(schema, value, 'max_length') return undefined } if (_.isRegExp(schema.regex) && !schema.regex.test(value)) { schema.onValidationFailed(schema, value, 'regex') return undefined } if (_.isBoolean(schema.allowEmpty) && !schema.allowEmpty) { const flushedValue = value.replace(/\s/g, '') if (flushedValue.length == 0) { schema.onValidationFailed(schema, value, 'is_empty') return undefined } } return value } }