mezzanine
Version:
Fantasy land union types with pattern matching
29 lines (26 loc) • 566 B
JavaScript
export function applyStack(stack, data) {
var ln = stack.length;
if (ln === 0)
return data;
var history = [];
var current = data;
for (var i = 0; i < ln; ++i) {
var fn = stack[i];
var _val = fn(current);
history.length = i + 1;
current = history[i] = _val;
}
return current;
}
export function getInitialValue(stack, obj) {
var val = obj;
var succ = true;
try {
val = applyStack(stack, val);
} catch (err) {
succ = false;
val = err.message;
}
return { val, succ };
}
//# sourceMappingURL=virtual-stack.js.map