UNPKG

atombeak

Version:

Create asynchronous atomic functions!

27 lines (26 loc) 699 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GOOD = 'GOOD'; function good(value, log) { return { type: exports.GOOD, value: value, log: log }; } exports.good = good; exports.RETRY = 'RETRY'; function retry(log) { return { type: exports.RETRY, log: log }; } exports.retry = retry; exports.Result = { map: function (result, fn) { if (result.type === exports.GOOD) { return good(fn(result.value), result.log); } else if (result.type === exports.RETRY) { return retry(result.log); } else { var exhaustive = result; throw new Error(exhaustive); } } };