speckoloo
Version:
Domain entites inspired by Speck
679 lines (656 loc) • 16.4 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var cov_xsapdyc9z = function () {
var path = '/home/henrique/labs/speckoloo/src/default-validators.js',
hash = '6985b5939e4311e3a42c71ce0e940e4c0c57814d',
global = new Function('return this')(),
gcv = '__coverage__',
coverageData = {
path: '/home/henrique/labs/speckoloo/src/default-validators.js',
statementMap: {
'0': {
start: {
line: 2,
column: 2
},
end: {
line: 2,
column: 13
}
},
'1': {
start: {
line: 6,
column: 2
},
end: {
line: 6,
column: 62
}
},
'2': {
start: {
line: 20,
column: 17
},
end: {
line: 20,
column: 22
}
},
'3': {
start: {
line: 23,
column: 2
},
end: {
line: 28,
column: 3
}
},
'4': {
start: {
line: 24,
column: 4
},
end: {
line: 24,
column: 37
}
},
'5': {
start: {
line: 26,
column: 4
},
end: {
line: 26,
column: 18
}
},
'6': {
start: {
line: 27,
column: 4
},
end: {
line: 27,
column: 47
}
},
'7': {
start: {
line: 30,
column: 2
},
end: {
line: 49,
column: 3
}
},
'8': {
start: {
line: 31,
column: 4
},
end: {
line: 37,
column: 5
}
},
'9': {
start: {
line: 32,
column: 6
},
end: {
line: 34,
column: 7
}
},
'10': {
start: {
line: 33,
column: 8
},
end: {
line: 33,
column: 46
}
},
'11': {
start: {
line: 36,
column: 6
},
end: {
line: 36,
column: 19
}
},
'12': {
start: {
line: 39,
column: 4
},
end: {
line: 48,
column: 5
}
},
'13': {
start: {
line: 40,
column: 6
},
end: {
line: 40,
column: 30
}
},
'14': {
start: {
line: 41,
column: 6
},
end: {
line: 41,
column: 29
}
},
'15': {
start: {
line: 43,
column: 6
},
end: {
line: 45,
column: 7
}
},
'16': {
start: {
line: 44,
column: 8
},
end: {
line: 44,
column: 35
}
},
'17': {
start: {
line: 47,
column: 6
},
end: {
line: 47,
column: 33
}
}
},
fnMap: {
'0': {
name: 'allowAny',
decl: {
start: {
line: 1,
column: 16
},
end: {
line: 1,
column: 24
}
},
loc: {
start: {
line: 1,
column: 46
},
end: {
line: 3,
column: 1
}
},
line: 1
},
'1': {
name: 'forbidAny',
decl: {
start: {
line: 5,
column: 16
},
end: {
line: 5,
column: 25
}
},
loc: {
start: {
line: 5,
column: 47
},
end: {
line: 7,
column: 1
}
},
line: 5
},
'2': {
name: 'delegate',
decl: {
start: {
line: 19,
column: 16
},
end: {
line: 19,
column: 24
}
},
loc: {
start: {
line: 19,
column: 38
},
end: {
line: 50,
column: 1
}
},
line: 19
},
'3': {
name: '(anonymous_3)',
decl: {
start: {
line: 30,
column: 9
},
end: {
line: 30,
column: 10
}
},
loc: {
start: {
line: 30,
column: 26
},
end: {
line: 49,
column: 3
}
},
line: 30
}
},
branchMap: {
'0': {
loc: {
start: {
line: 23,
column: 2
},
end: {
line: 28,
column: 3
}
},
type: 'if',
locations: [{
start: {
line: 23,
column: 2
},
end: {
line: 28,
column: 3
}
}, {
start: {
line: 23,
column: 2
},
end: {
line: 28,
column: 3
}
}],
line: 23
},
'1': {
loc: {
start: {
line: 23,
column: 6
},
end: {
line: 23,
column: 38
}
},
type: 'binary-expr',
locations: [{
start: {
line: 23,
column: 6
},
end: {
line: 23,
column: 10
}
}, {
start: {
line: 23,
column: 14
},
end: {
line: 23,
column: 38
}
}],
line: 23
},
'2': {
loc: {
start: {
line: 24,
column: 15
},
end: {
line: 24,
column: 37
}
},
type: 'binary-expr',
locations: [{
start: {
line: 24,
column: 15
},
end: {
line: 24,
column: 28
}
}, {
start: {
line: 24,
column: 32
},
end: {
line: 24,
column: 37
}
}],
line: 24
},
'3': {
loc: {
start: {
line: 27,
column: 15
},
end: {
line: 27,
column: 47
}
},
type: 'binary-expr',
locations: [{
start: {
line: 27,
column: 16
},
end: {
line: 27,
column: 20
}
}, {
start: {
line: 27,
column: 24
},
end: {
line: 27,
column: 37
}
}, {
start: {
line: 27,
column: 42
},
end: {
line: 27,
column: 47
}
}],
line: 27
},
'4': {
loc: {
start: {
line: 31,
column: 4
},
end: {
line: 37,
column: 5
}
},
type: 'if',
locations: [{
start: {
line: 31,
column: 4
},
end: {
line: 37,
column: 5
}
}, {
start: {
line: 31,
column: 4
},
end: {
line: 37,
column: 5
}
}],
line: 31
},
'5': {
loc: {
start: {
line: 32,
column: 6
},
end: {
line: 34,
column: 7
}
},
type: 'if',
locations: [{
start: {
line: 32,
column: 6
},
end: {
line: 34,
column: 7
}
}, {
start: {
line: 32,
column: 6
},
end: {
line: 34,
column: 7
}
}],
line: 32
},
'6': {
loc: {
start: {
line: 43,
column: 6
},
end: {
line: 45,
column: 7
}
},
type: 'if',
locations: [{
start: {
line: 43,
column: 6
},
end: {
line: 45,
column: 7
}
}, {
start: {
line: 43,
column: 6
},
end: {
line: 45,
column: 7
}
}],
line: 43
}
},
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,
'15': 0,
'16': 0,
'17': 0
},
f: {
'0': 0,
'1': 0,
'2': 0,
'3': 0
},
b: {
'0': [0, 0],
'1': [0, 0],
'2': [0, 0],
'3': [0, 0, 0],
'4': [0, 0],
'5': [0, 0],
'6': [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;
}();
exports.allowAny = allowAny;
exports.forbidAny = forbidAny;
exports.delegate = delegate;
function allowAny(value, field, data) {
cov_xsapdyc9z.f[0]++;
cov_xsapdyc9z.s[0]++;
return data;
}
function forbidAny(value, field, data) {
cov_xsapdyc9z.f[1]++;
cov_xsapdyc9z.s[1]++;
return { error: `Field ${field} does not accept any value` };
}
/**
* There are 2 available signatures:
*
* @param {string} context the context name
* @param {object = { required: false }} options the options
*
* Or:
*
* @param {object = { required: false }} options the options
*/
function delegate(arg1, arg2) {
cov_xsapdyc9z.f[2]++;
let required = (cov_xsapdyc9z.s[2]++, false);
let context;
cov_xsapdyc9z.s[3]++;
if ((cov_xsapdyc9z.b[1][0]++, arg1) && (cov_xsapdyc9z.b[1][1]++, typeof arg1 !== 'string')) {
cov_xsapdyc9z.b[0][0]++;
cov_xsapdyc9z.s[4]++;
required = (cov_xsapdyc9z.b[2][0]++, arg1.required) || (cov_xsapdyc9z.b[2][1]++, false);
} else {
cov_xsapdyc9z.b[0][1]++;
cov_xsapdyc9z.s[5]++;
context = arg1;
cov_xsapdyc9z.s[6]++;
required = (cov_xsapdyc9z.b[3][0]++, arg2) && (cov_xsapdyc9z.b[3][1]++, arg2.required) || (cov_xsapdyc9z.b[3][2]++, false);
}
cov_xsapdyc9z.s[7]++;
return (entity, key) => {
cov_xsapdyc9z.f[3]++;
cov_xsapdyc9z.s[8]++;
if (entity === undefined) {
cov_xsapdyc9z.b[4][0]++;
cov_xsapdyc9z.s[9]++;
if (required) {
cov_xsapdyc9z.b[5][0]++;
cov_xsapdyc9z.s[10]++;
return { error: `${key} is required` };
} else {
cov_xsapdyc9z.b[5][1]++;
}
cov_xsapdyc9z.s[11]++;
return entity;
} else {
cov_xsapdyc9z.b[4][1]++;
}
cov_xsapdyc9z.s[12]++;
try {
cov_xsapdyc9z.s[13]++;
entity.validate(context);
cov_xsapdyc9z.s[14]++;
return { data: entity };
} catch (e) {
cov_xsapdyc9z.s[15]++;
if (e.code === 'ERR_VALIDATION') {
cov_xsapdyc9z.b[6][0]++;
cov_xsapdyc9z.s[16]++;
return { error: e.details };
} else {
cov_xsapdyc9z.b[6][1]++;
}
cov_xsapdyc9z.s[17]++;
return { error: e.message };
}
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0LXZhbGlkYXRvcnMuanMiXSwibmFtZXMiOlsiYWxsb3dBbnkiLCJmb3JiaWRBbnkiLCJkZWxlZ2F0ZSIsInZhbHVlIiwiZmllbGQiLCJkYXRhIiwiZXJyb3IiLCJhcmcxIiwiYXJnMiIsInJlcXVpcmVkIiwiY29udGV4dCIsImVudGl0eSIsImtleSIsInVuZGVmaW5lZCIsInZhbGlkYXRlIiwiZSIsImNvZGUiLCJkZXRhaWxzIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBQWdCQSxRLEdBQUFBLFE7UUFJQUMsUyxHQUFBQSxTO1FBY0FDLFEsR0FBQUEsUTtBQWxCVCxTQUFTRixRQUFULENBQW1CRyxLQUFuQixFQUEwQkMsS0FBMUIsRUFBaUNDLElBQWpDLEVBQXVDO0FBQUE7QUFBQTs7QUFDNUMsU0FBT0EsSUFBUDtBQUNEOztBQUVNLFNBQVNKLFNBQVQsQ0FBb0JFLEtBQXBCLEVBQTJCQyxLQUEzQixFQUFrQ0MsSUFBbEMsRUFBd0M7QUFBQTtBQUFBOztBQUM3QyxTQUFPLEVBQUVDLE9BQVEsU0FBUUYsS0FBTSw0QkFBeEIsRUFBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7O0FBVU8sU0FBU0YsUUFBVCxDQUFtQkssSUFBbkIsRUFBeUJDLElBQXpCLEVBQStCO0FBQUE7O0FBQ3BDLE1BQUlDLGtDQUFXLEtBQVgsQ0FBSjtBQUNBLE1BQUlDLE9BQUo7O0FBRm9DO0FBSXBDLE1BQUksNkRBQVEsT0FBT0gsSUFBUCxLQUFnQixRQUF4QixDQUFKLEVBQXNDO0FBQUE7QUFBQTs7QUFDcENFLGVBQVcsK0JBQUtBLFFBQUwsK0JBQWlCLEtBQWpCLENBQVg7QUFDRCxHQUZELE1BRU87QUFBQTtBQUFBOztBQUNMQyxjQUFVSCxJQUFWO0FBREs7QUFFTEUsZUFBWSw2REFBUUQsS0FBS0MsUUFBYixDQUFELDhCQUEyQixLQUEzQixDQUFYO0FBQ0Q7O0FBVG1DO0FBV3BDLFNBQU8sQ0FBQ0UsTUFBRCxFQUFTQyxHQUFULEtBQWlCO0FBQUE7QUFBQTs7QUFDdEIsUUFBSUQsV0FBV0UsU0FBZixFQUEwQjtBQUFBO0FBQUE7O0FBQ3hCLFVBQUlKLFFBQUosRUFBYztBQUFBO0FBQUE7O0FBQ1osZUFBTyxFQUFFSCxPQUFRLEdBQUVNLEdBQUksY0FBaEIsRUFBUDtBQUNELE9BRkQ7QUFBQTtBQUFBOztBQUR3QjtBQUt4QixhQUFPRCxNQUFQO0FBQ0QsS0FORDtBQUFBO0FBQUE7O0FBRHNCO0FBU3RCLFFBQUk7QUFBQTs7QUFDRkEsYUFBT0csUUFBUCxDQUFnQkosT0FBaEI7QUFERTtBQUVGLGFBQU8sRUFBRUwsTUFBTU0sTUFBUixFQUFQO0FBQ0QsS0FIRCxDQUdFLE9BQU9JLENBQVAsRUFBVTtBQUFBOztBQUNWLFVBQUlBLEVBQUVDLElBQUYsS0FBVyxnQkFBZixFQUFpQztBQUFBO0FBQUE7O0FBQy9CLGVBQU8sRUFBRVYsT0FBT1MsRUFBRUUsT0FBWCxFQUFQO0FBQ0QsT0FGRDtBQUFBO0FBQUE7O0FBRFU7QUFLVixhQUFPLEVBQUVYLE9BQU9TLEVBQUVHLE9BQVgsRUFBUDtBQUNEO0FBQ0YsR0FuQkQ7QUFvQkQiLCJmaWxlIjoiZGVmYXVsdC12YWxpZGF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFsbG93QW55ICh2YWx1ZSwgZmllbGQsIGRhdGEpIHtcbiAgcmV0dXJuIGRhdGFcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcmJpZEFueSAodmFsdWUsIGZpZWxkLCBkYXRhKSB7XG4gIHJldHVybiB7IGVycm9yOiBgRmllbGQgJHtmaWVsZH0gZG9lcyBub3QgYWNjZXB0IGFueSB2YWx1ZWAgfVxufVxuXG4vKipcbiAqIFRoZXJlIGFyZSAyIGF2YWlsYWJsZSBzaWduYXR1cmVzOlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZXh0IHRoZSBjb250ZXh0IG5hbWVcbiAqIEBwYXJhbSB7b2JqZWN0ID0geyByZXF1aXJlZDogZmFsc2UgfX0gb3B0aW9ucyB0aGUgb3B0aW9uc1xuICpcbiAqIE9yOlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0ID0geyByZXF1aXJlZDogZmFsc2UgfX0gb3B0aW9ucyB0aGUgb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsZWdhdGUgKGFyZzEsIGFyZzIpIHtcbiAgbGV0IHJlcXVpcmVkID0gZmFsc2VcbiAgbGV0IGNvbnRleHRcblxuICBpZiAoYXJnMSAmJiB0eXBlb2YgYXJnMSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXF1aXJlZCA9IGFyZzEucmVxdWlyZWQgfHwgZmFsc2VcbiAgfSBlbHNlIHtcbiAgICBjb250ZXh0ID0gYXJnMVxuICAgIHJlcXVpcmVkID0gKGFyZzIgJiYgYXJnMi5yZXF1aXJlZCkgfHwgZmFsc2VcbiAgfVxuXG4gIHJldHVybiAoZW50aXR5LCBrZXkpID0+IHtcbiAgICBpZiAoZW50aXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChyZXF1aXJlZCkge1xuICAgICAgICByZXR1cm4geyBlcnJvcjogYCR7a2V5fSBpcyByZXF1aXJlZGAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZW50aXR5XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGVudGl0eS52YWxpZGF0ZShjb250ZXh0KVxuICAgICAgcmV0dXJuIHsgZGF0YTogZW50aXR5IH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZS5jb2RlID09PSAnRVJSX1ZBTElEQVRJT04nKSB7XG4gICAgICAgIHJldHVybiB7IGVycm9yOiBlLmRldGFpbHMgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4geyBlcnJvcjogZS5tZXNzYWdlIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==