UNPKG

speckoloo

Version:
572 lines (550 loc) 15.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var cov_135vxsj63t = function () { var path = '/home/henrique/labs/speckoloo/src/collection-factory.js', hash = 'b678376a9f0c8f94598d6610b65abd598cf8ce6e', global = new Function('return this')(), gcv = '__coverage__', coverageData = { path: '/home/henrique/labs/speckoloo/src/collection-factory.js', statementMap: { '0': { start: { line: 4, column: 2 }, end: { line: 43, column: 3 } }, '1': { start: { line: 5, column: 22 }, end: { line: 6, column: 19 } }, '2': { start: { line: 8, column: 4 }, end: { line: 42, column: 6 } }, '3': { start: { line: 11, column: 10 }, end: { line: 11, column: 60 } }, '4': { start: { line: 11, column: 39 }, end: { line: 11, column: 59 } }, '5': { start: { line: 16, column: 25 }, end: { line: 23, column: 16 } }, '6': { start: { line: 17, column: 12 }, end: { line: 22, column: 13 } }, '7': { start: { line: 18, column: 14 }, end: { line: 18, column: 36 } }, '8': { start: { line: 19, column: 14 }, end: { line: 19, column: 24 } }, '9': { start: { line: 21, column: 14 }, end: { line: 21, column: 59 } }, '10': { start: { line: 25, column: 10 }, end: { line: 27, column: 11 } }, '11': { start: { line: 26, column: 12 }, end: { line: 26, column: 83 } }, '12': { start: { line: 29, column: 10 }, end: { line: 29, column: 21 } }, '13': { start: { line: 34, column: 10 }, end: { line: 34, column: 29 } }, '14': { start: { line: 39, column: 10 }, end: { line: 39, column: 46 } } }, fnMap: { '0': { name: '(anonymous_0)', decl: { start: { line: 3, column: 15 }, end: { line: 3, column: 16 } }, loc: { start: { line: 3, column: 26 }, end: { line: 44, column: 1 } }, line: 3 }, '1': { name: '(anonymous_1)', decl: { start: { line: 4, column: 9 }, end: { line: 4, column: 10 } }, loc: { start: { line: 4, column: 17 }, end: { line: 43, column: 3 } }, line: 4 }, '2': { name: 'toJSON', decl: { start: { line: 10, column: 24 }, end: { line: 10, column: 30 } }, loc: { start: { line: 10, column: 53 }, end: { line: 12, column: 9 } }, line: 10 }, '3': { name: '(anonymous_3)', decl: { start: { line: 11, column: 31 }, end: { line: 11, column: 32 } }, loc: { start: { line: 11, column: 39 }, end: { line: 11, column: 59 } }, line: 11 }, '4': { name: 'validate', decl: { start: { line: 15, column: 24 }, end: { line: 15, column: 32 } }, loc: { start: { line: 15, column: 55 }, end: { line: 30, column: 9 } }, line: 15 }, '5': { name: '(anonymous_5)', decl: { start: { line: 16, column: 42 }, end: { line: 16, column: 43 } }, loc: { start: { line: 16, column: 62 }, end: { line: 23, column: 11 } }, line: 16 }, '6': { name: 'at', decl: { start: { line: 33, column: 24 }, end: { line: 33, column: 26 } }, loc: { start: { line: 33, column: 31 }, end: { line: 35, column: 9 } }, line: 33 }, '7': { name: 'iterator', decl: { start: { line: 38, column: 26 }, end: { line: 38, column: 34 } }, loc: { start: { line: 38, column: 38 }, end: { line: 40, column: 9 } }, line: 38 } }, branchMap: { '0': { loc: { start: { line: 10, column: 32 }, end: { line: 10, column: 51 } }, type: 'default-arg', locations: [{ start: { line: 10, column: 42 }, end: { line: 10, column: 51 } }], line: 10 }, '1': { loc: { start: { line: 15, column: 34 }, end: { line: 15, column: 53 } }, type: 'default-arg', locations: [{ start: { line: 15, column: 44 }, end: { line: 15, column: 53 } }], line: 15 }, '2': { loc: { start: { line: 25, column: 10 }, end: { line: 27, column: 11 } }, type: 'if', locations: [{ start: { line: 25, column: 10 }, end: { line: 27, column: 11 } }, { start: { line: 25, column: 10 }, end: { line: 27, column: 11 } }], line: 25 } }, s: { '0': 0, '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 0, '9': 0, '10': 0, '11': 0, '12': 0, '13': 0, '14': 0 }, f: { '0': 0, '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0 }, b: { '0': [0], '1': [0], '2': [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; }; var _validationError = require('./validation-error.factory'); var _validationError2 = _interopRequireDefault(_validationError); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = factory => { cov_135vxsj63t.f[0]++; cov_135vxsj63t.s[0]++; return data => { cov_135vxsj63t.f[1]++; const instances = (cov_135vxsj63t.s[1]++, [...data].map(factory)); cov_135vxsj63t.s[2]++; return Object.create(null, { toJSON: { value: function toJSON(context = (cov_135vxsj63t.b[0][0]++, 'default')) { cov_135vxsj63t.f[2]++; cov_135vxsj63t.s[3]++; return instances.map(item => { cov_135vxsj63t.f[3]++; cov_135vxsj63t.s[4]++; return item.toJSON(context); }); } }, validate: { value: function validate(context = (cov_135vxsj63t.b[1][0]++, 'default')) { cov_135vxsj63t.f[4]++; const errors = (cov_135vxsj63t.s[5]++, instances.reduce((acc, item, key) => { cov_135vxsj63t.f[5]++; cov_135vxsj63t.s[6]++; try { cov_135vxsj63t.s[7]++; item.validate(context); cov_135vxsj63t.s[8]++; return acc; } catch (e) { cov_135vxsj63t.s[9]++; return _extends({}, acc, { [`item#${key}`]: e.details }); } }, {})); cov_135vxsj63t.s[10]++; if (Object.keys(errors).length > 0) { cov_135vxsj63t.b[2][0]++; cov_135vxsj63t.s[11]++; throw (0, _validationError2.default)('Invalid entity aggregate!', { details: errors }); } else { cov_135vxsj63t.b[2][1]++; } cov_135vxsj63t.s[12]++; return this; } }, at: { value: function at(n) { cov_135vxsj63t.f[6]++; cov_135vxsj63t.s[13]++; return instances[n]; } }, [Symbol.iterator]: { value: function* iterator() { cov_135vxsj63t.f[7]++; cov_135vxsj63t.s[14]++; yield* instances[Symbol.iterator](); } } }); }; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xsZWN0aW9uLWZhY3RvcnkuanMiXSwibmFtZXMiOlsiZmFjdG9yeSIsImRhdGEiLCJpbnN0YW5jZXMiLCJtYXAiLCJPYmplY3QiLCJjcmVhdGUiLCJ0b0pTT04iLCJ2YWx1ZSIsImNvbnRleHQiLCJpdGVtIiwidmFsaWRhdGUiLCJlcnJvcnMiLCJyZWR1Y2UiLCJhY2MiLCJrZXkiLCJlIiwiZGV0YWlscyIsImtleXMiLCJsZW5ndGgiLCJhdCIsIm4iLCJTeW1ib2wiLCJpdGVyYXRvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7O2tCQUVlQSxXQUFXO0FBQUE7QUFBQTs7QUFDeEIsU0FBT0MsUUFBUTtBQUFBOztBQUNiLFVBQU1DLG9DQUFZLENBQUMsR0FBR0QsSUFBSixFQUNmRSxHQURlLENBQ1hILE9BRFcsQ0FBWixDQUFOOztBQURhO0FBSWIsV0FBT0ksT0FBT0MsTUFBUCxDQUFjLElBQWQsRUFBb0I7QUFDekJDLGNBQVE7QUFDTkMsZUFBTyxTQUFTRCxNQUFULENBQWlCRSxxQ0FBVSxTQUFWLENBQWpCLEVBQXNDO0FBQUE7QUFBQTs7QUFDM0MsaUJBQU9OLFVBQVVDLEdBQVYsQ0FBY00sUUFBUTtBQUFBO0FBQUE7QUFBQSx3QkFBS0gsTUFBTCxDQUFZRSxPQUFaO0FBQW9CLFdBQTFDLENBQVA7QUFDRDtBQUhLLE9BRGlCO0FBTXpCRSxnQkFBVTtBQUNSSCxlQUFPLFNBQVNHLFFBQVQsQ0FBbUJGLHFDQUFVLFNBQVYsQ0FBbkIsRUFBd0M7QUFBQTs7QUFDN0MsZ0JBQU1HLGlDQUFTVCxVQUFVVSxNQUFWLENBQWlCLENBQUNDLEdBQUQsRUFBTUosSUFBTixFQUFZSyxHQUFaLEtBQW9CO0FBQUE7QUFBQTs7QUFDbEQsZ0JBQUk7QUFBQTs7QUFDRkwsbUJBQUtDLFFBQUwsQ0FBY0YsT0FBZDtBQURFO0FBRUYscUJBQU9LLEdBQVA7QUFDRCxhQUhELENBR0UsT0FBT0UsQ0FBUCxFQUFVO0FBQUE7O0FBQ1Ysa0NBQVlGLEdBQVosSUFBaUIsQ0FBRSxRQUFPQyxHQUFJLEVBQWIsR0FBaUJDLEVBQUVDLE9BQXBDO0FBQ0Q7QUFDRixXQVBjLEVBT1osRUFQWSxDQUFULENBQU47O0FBRDZDO0FBVTdDLGNBQUlaLE9BQU9hLElBQVAsQ0FBWU4sTUFBWixFQUFvQk8sTUFBcEIsR0FBNkIsQ0FBakMsRUFBb0M7QUFBQTtBQUFBOztBQUNsQyxrQkFBTSwrQkFBZ0IsMkJBQWhCLEVBQTZDLEVBQUVGLFNBQVNMLE1BQVgsRUFBN0MsQ0FBTjtBQUNELFdBRkQ7QUFBQTtBQUFBOztBQVY2QztBQWM3QyxpQkFBTyxJQUFQO0FBQ0Q7QUFoQk8sT0FOZTtBQXdCekJRLFVBQUk7QUFDRlosZUFBTyxTQUFTWSxFQUFULENBQWFDLENBQWIsRUFBZ0I7QUFBQTtBQUFBOztBQUNyQixpQkFBT2xCLFVBQVVrQixDQUFWLENBQVA7QUFDRDtBQUhDLE9BeEJxQjtBQTZCekIsT0FBQ0MsT0FBT0MsUUFBUixHQUFtQjtBQUNqQmYsZUFBTyxVQUFXZSxRQUFYLEdBQXVCO0FBQUE7QUFBQTs7QUFDNUIsaUJBQVFwQixVQUFVbUIsT0FBT0MsUUFBakIsR0FBUjtBQUNEO0FBSGdCO0FBN0JNLEtBQXBCLENBQVA7QUFtQ0QsR0F2Q0Q7QUF3Q0QsQyIsImZpbGUiOiJjb2xsZWN0aW9uLWZhY3RvcnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVmFsaWRhdGlvbkVycm9yIGZyb20gJy4vdmFsaWRhdGlvbi1lcnJvci5mYWN0b3J5J1xuXG5leHBvcnQgZGVmYXVsdCBmYWN0b3J5ID0+IHtcbiAgcmV0dXJuIGRhdGEgPT4ge1xuICAgIGNvbnN0IGluc3RhbmNlcyA9IFsuLi5kYXRhXVxuICAgICAgLm1hcChmYWN0b3J5KVxuXG4gICAgcmV0dXJuIE9iamVjdC5jcmVhdGUobnVsbCwge1xuICAgICAgdG9KU09OOiB7XG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiB0b0pTT04gKGNvbnRleHQgPSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICByZXR1cm4gaW5zdGFuY2VzLm1hcChpdGVtID0+IGl0ZW0udG9KU09OKGNvbnRleHQpKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdmFsaWRhdGU6IHtcbiAgICAgICAgdmFsdWU6IGZ1bmN0aW9uIHZhbGlkYXRlIChjb250ZXh0ID0gJ2RlZmF1bHQnKSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JzID0gaW5zdGFuY2VzLnJlZHVjZSgoYWNjLCBpdGVtLCBrZXkpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGl0ZW0udmFsaWRhdGUoY29udGV4dClcbiAgICAgICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtgaXRlbSMke2tleX1gXTogZS5kZXRhaWxzIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCB7fSlcblxuICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRocm93IFZhbGlkYXRpb25FcnJvcignSW52YWxpZCBlbnRpdHkgYWdncmVnYXRlIScsIHsgZGV0YWlsczogZXJyb3JzIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRoaXNcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGF0OiB7XG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiBhdCAobikge1xuICAgICAgICAgIHJldHVybiBpbnN0YW5jZXNbbl1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtTeW1ib2wuaXRlcmF0b3JdOiB7XG4gICAgICAgIHZhbHVlOiBmdW5jdGlvbiAqIGl0ZXJhdG9yICgpIHtcbiAgICAgICAgICB5aWVsZCAqIGluc3RhbmNlc1tTeW1ib2wuaXRlcmF0b3JdKClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiJdfQ==