UNPKG

assertthat

Version:
28 lines (27 loc) 913 B
"use strict"; 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;