UNPKG

speckoloo

Version:
402 lines (380 loc) 10.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var cov_2g6kzl967f = function () { var path = '/home/henrique/labs/speckoloo/src/validate.js', hash = 'ab4d4ed4a1dca40d24474ceb0d96ed83b4fddb34', global = new Function('return this')(), gcv = '__coverage__', coverageData = { path: '/home/henrique/labs/speckoloo/src/validate.js', statementMap: { '0': { start: { line: 4, column: 20 }, end: { line: 11, column: 15 } }, '1': { start: { line: 5, column: 4 }, end: { line: 7, column: 5 } }, '2': { start: { line: 6, column: 6 }, end: { line: 6, column: 16 } }, '3': { start: { line: 9, column: 23 }, end: { line: 9, column: 89 } }, '4': { start: { line: 10, column: 4 }, end: { line: 10, column: 58 } }, '5': { start: { line: 13, column: 2 }, end: { line: 15, column: 3 } }, '6': { start: { line: 14, column: 4 }, end: { line: 14, column: 68 } }, '7': { start: { line: 17, column: 2 }, end: { line: 17, column: 13 } } }, fnMap: { '0': { name: 'validate', decl: { start: { line: 3, column: 24 }, end: { line: 3, column: 32 } }, loc: { start: { line: 3, column: 48 }, end: { line: 18, column: 1 } }, line: 3 }, '1': { name: '(anonymous_1)', decl: { start: { line: 4, column: 50 }, end: { line: 4, column: 51 } }, loc: { start: { line: 4, column: 89 }, end: { line: 11, column: 3 } }, line: 4 } }, branchMap: { '0': { loc: { start: { line: 5, column: 4 }, end: { line: 7, column: 5 } }, type: 'if', locations: [{ start: { line: 5, column: 4 }, end: { line: 7, column: 5 } }, { start: { line: 5, column: 4 }, end: { line: 7, column: 5 } }], line: 5 }, '1': { loc: { start: { line: 5, column: 8 }, end: { line: 5, column: 64 } }, type: 'binary-expr', locations: [{ start: { line: 5, column: 8 }, end: { line: 5, column: 28 } }, { start: { line: 5, column: 32 }, end: { line: 5, column: 64 } }], line: 5 }, '2': { loc: { start: { line: 9, column: 23 }, end: { line: 9, column: 89 } }, type: 'binary-expr', locations: [{ start: { line: 9, column: 23 }, end: { line: 9, column: 83 } }, { start: { line: 9, column: 87 }, end: { line: 9, column: 89 } }], line: 9 }, '3': { loc: { start: { line: 10, column: 11 }, end: { line: 10, column: 58 } }, type: 'cond-expr', locations: [{ start: { line: 10, column: 19 }, end: { line: 10, column: 52 } }, { start: { line: 10, column: 55 }, end: { line: 10, column: 58 } }], line: 10 }, '4': { loc: { start: { line: 13, column: 2 }, end: { line: 15, column: 3 } }, type: 'if', locations: [{ start: { line: 13, column: 2 }, end: { line: 15, column: 3 } }, { start: { line: 13, column: 2 }, end: { line: 15, column: 3 } }], line: 13 } }, s: { '0': 0, '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0 }, f: { '0': 0, '1': 0 }, b: { '0': [0, 0], '1': [0, 0], '2': [0, 0], '3': [0, 0], '4': [0, 0] }, _coverageSchema: '332fd63041d2c1bcb487cc26dd0d5f7d97098a6c' }, coverage = global[gcv] || (global[gcv] = {}); if (coverage[path] && coverage[path].hash === hash) { return coverage[path]; } coverageData.hash = hash; return coverage[path] = coverageData; }(); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; exports.default = validate; var _validationError = require('./validation-error.factory'); var _validationError2 = _interopRequireDefault(_validationError); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectEntries(obj) { var entries = []; var keys = Object.keys(obj); for (var k = 0; k < keys.length; ++k) entries.push([keys[k], obj[keys[k]]]); return entries; } function validate(schema, data) { cov_2g6kzl967f.f[0]++; const allErrors = (cov_2g6kzl967f.s[0]++, _objectEntries(schema).reduce((acc, [propertyName, definition]) => { cov_2g6kzl967f.f[1]++; cov_2g6kzl967f.s[1]++; if ((cov_2g6kzl967f.b[1][0]++, definition.skippable) && (cov_2g6kzl967f.b[1][1]++, data[propertyName] === undefined)) { cov_2g6kzl967f.b[0][0]++; cov_2g6kzl967f.s[2]++; return acc; } else { cov_2g6kzl967f.b[0][1]++; } var _ref = (cov_2g6kzl967f.s[3]++, (cov_2g6kzl967f.b[2][0]++, definition.validator(data[propertyName], propertyName, data)) || (cov_2g6kzl967f.b[2][1]++, {})); const error = _ref.error; cov_2g6kzl967f.s[4]++; return error ? (cov_2g6kzl967f.b[3][0]++, _extends({}, acc, { [propertyName]: error })) : (cov_2g6kzl967f.b[3][1]++, acc); }, undefined)); cov_2g6kzl967f.s[5]++; if (allErrors) { cov_2g6kzl967f.b[4][0]++; cov_2g6kzl967f.s[6]++; throw (0, _validationError2.default)('Invalid entity!', { details: allErrors }); } else { cov_2g6kzl967f.b[4][1]++; } cov_2g6kzl967f.s[7]++; return data; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YWxpZGF0ZS5qcyJdLCJuYW1lcyI6WyJ2YWxpZGF0ZSIsInNjaGVtYSIsImRhdGEiLCJhbGxFcnJvcnMiLCJyZWR1Y2UiLCJhY2MiLCJwcm9wZXJ0eU5hbWUiLCJkZWZpbml0aW9uIiwic2tpcHBhYmxlIiwidW5kZWZpbmVkIiwidmFsaWRhdG9yIiwiZXJyb3IiLCJkZXRhaWxzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFFd0JBLFE7O0FBRnhCOzs7Ozs7Ozs7Ozs7Ozs7QUFFZSxTQUFTQSxRQUFULENBQW1CQyxNQUFuQixFQUEyQkMsSUFBM0IsRUFBaUM7QUFBQTs7QUFDOUMsUUFBTUMsb0NBQVksZUFBZUYsTUFBZixFQUF1QkcsTUFBdkIsQ0FBOEIsQ0FBQ0MsR0FBRCxFQUFNLENBQUVDLFlBQUYsRUFBZ0JDLFVBQWhCLENBQU4sS0FBdUM7QUFBQTtBQUFBOztBQUNyRixRQUFJLHNDQUFXQyxTQUFYLGdDQUF3Qk4sS0FBS0ksWUFBTCxNQUF1QkcsU0FBL0MsQ0FBSixFQUE4RDtBQUFBO0FBQUE7O0FBQzVELGFBQU9KLEdBQVA7QUFDRCxLQUZEO0FBQUE7QUFBQTs7QUFEcUYsdUNBS2xFLHNDQUFXSyxTQUFYLENBQXFCUixLQUFLSSxZQUFMLENBQXJCLEVBQXlDQSxZQUF6QyxFQUF1REosSUFBdkQsaUNBQWdFLEVBQWhFLENBTGtFOztBQUFBLFVBSzdFUyxLQUw2RSxRQUs3RUEsS0FMNkU7QUFBQTs7QUFNckYsV0FBT0EsZ0RBQWFOLEdBQWIsSUFBa0IsQ0FBQ0MsWUFBRCxHQUFnQkssS0FBbEMsa0NBQTRDTixHQUE1QyxDQUFQO0FBQ0QsR0FQaUIsRUFPZkksU0FQZSxDQUFaLENBQU47O0FBRDhDO0FBVTlDLE1BQUlOLFNBQUosRUFBZTtBQUFBO0FBQUE7O0FBQ2IsVUFBTSwrQkFBZ0IsaUJBQWhCLEVBQW1DLEVBQUVTLFNBQVNULFNBQVgsRUFBbkMsQ0FBTjtBQUNELEdBRkQ7QUFBQTtBQUFBOztBQVY4QztBQWM5QyxTQUFPRCxJQUFQO0FBQ0QiLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVmFsaWRhdGlvbkVycm9yIGZyb20gJy4vdmFsaWRhdGlvbi1lcnJvci5mYWN0b3J5J1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2YWxpZGF0ZSAoc2NoZW1hLCBkYXRhKSB7XG4gIGNvbnN0IGFsbEVycm9ycyA9IE9iamVjdC5lbnRyaWVzKHNjaGVtYSkucmVkdWNlKChhY2MsIFsgcHJvcGVydHlOYW1lLCBkZWZpbml0aW9uIF0pID0+IHtcbiAgICBpZiAoZGVmaW5pdGlvbi5za2lwcGFibGUgJiYgZGF0YVtwcm9wZXJ0eU5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBhY2NcbiAgICB9XG5cbiAgICBjb25zdCB7IGVycm9yIH0gPSAoZGVmaW5pdGlvbi52YWxpZGF0b3IoZGF0YVtwcm9wZXJ0eU5hbWVdLCBwcm9wZXJ0eU5hbWUsIGRhdGEpIHx8IHt9KVxuICAgIHJldHVybiBlcnJvciA/IHsgLi4uYWNjLCBbcHJvcGVydHlOYW1lXTogZXJyb3IgfSA6IGFjY1xuICB9LCB1bmRlZmluZWQpXG5cbiAgaWYgKGFsbEVycm9ycykge1xuICAgIHRocm93IFZhbGlkYXRpb25FcnJvcignSW52YWxpZCBlbnRpdHkhJywgeyBkZXRhaWxzOiBhbGxFcnJvcnMgfSlcbiAgfVxuXG4gIHJldHVybiBkYXRhXG59XG4iXX0=