UNPKG

apeman-app-validate

Version:
37 lines (33 loc) 964 B
/** * @function validateData */ 'use strict' const apemanerror = require('apemanerror') const apemanschema = require('apemanschema') /** @lends validateData */ function validateData (data, schema, options = {}) { if (!data) { let code = apemanerror.ApErrorCodes.RESOURCE_DATA_MISSING_ERROR return apemanerror.newError(code, options.namespace, { trigger: 'apeman-app-validate' }) } if (Array.isArray(data)) { let errors = data .map((data, i) => validateData(data, schema, options)) .filter((error) => !!error) .reduce((a, b) => [].concat(a, b), []) return errors.length > 0 ? errors : null } let errors = apemanschema.validate(data, schema) if (!errors) { return null } let $pointer = data.$pointer || '/' return errors.map((error) => { let pointer = error.source.pointer error.source.pointer = [ '/', $pointer, pointer ].join('/') return error }) } module.exports = validateData