assertthat
Version:
assertthat provides fluent TDD.
28 lines (27 loc) • 913 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.dispelResult = void 0;
const dispel_1 = require("./dispel");
const defekt_1 = require("defekt");
const Recursion_1 = require("../types/Recursion");
const dispelResult = function (result, path = '/', ancestors = []) {
for (const ancestor of ancestors) {
if (result === ancestor.reference) {
return (0, Recursion_1.recursion)({
recursionPath: ancestor.path
});
}
}
const newAncestors = [
...ancestors,
{
reference: result,
path
}
];
if (result.hasValue()) {
return (0, defekt_1.value)((0, dispel_1.dispel)(result.value, `${path}value/`, newAncestors));
}
return (0, defekt_1.error)((0, dispel_1.dispel)(result.error, `${path}error/`, newAncestors));
};
exports.dispelResult = dispelResult;