UNPKG

chain-able

Version:

interfaces that describe their intentions.

32 lines (25 loc) 2.65 kB
'use strict' var tryCatch = require('./tryCatch') /** * @since 4.0.0 * @param {Function} call * @param {Function | undefined} [encaser=tryCatch] * @return {Function} -> FunctionObject{onInvalid, onValid, rethrow, call} */ module.exports = function (call, encaser) { var encased = encaser ? encaser(call) : tryCatch(call) // left, right, rethrow var onInvalid var onValid var config = function (a, b, c) { return encased(onValid, onInvalid)(a, b, c); } config.then = config.onInvalid = function (fn) { onInvalid = fn return config } config.catch = config.onValid = function (fn) { onValid = fn return config } return config } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jYXNlLmpzIiwic291cmNlcyI6WyJlbmNhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHRyeUNhdGNoID0gcmVxdWlyZSgnLi90cnlDYXRjaCcpXG5cbi8qKlxuICogQHNpbmNlIDQuMC4wXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gY2FsbFxuICogQHBhcmFtICB7RnVuY3Rpb24gfCB1bmRlZmluZWR9IFtlbmNhc2VyPXRyeUNhdGNoXVxuICogQHJldHVybiB7RnVuY3Rpb259IC0+IEZ1bmN0aW9uT2JqZWN0e29uSW52YWxpZCwgb25WYWxpZCwgcmV0aHJvdywgY2FsbH1cbiAqL1xubW9kdWxlLmV4cG9ydHMgPSAoY2FsbCwgZW5jYXNlcikgPT4ge1xuICBjb25zdCBlbmNhc2VkID0gZW5jYXNlciA/IGVuY2FzZXIoY2FsbCkgOiB0cnlDYXRjaChjYWxsKVxuXG4gIC8vIGxlZnQsIHJpZ2h0LCByZXRocm93XG4gIGxldCBvbkludmFsaWRcbiAgbGV0IG9uVmFsaWRcblxuICBjb25zdCBjb25maWcgPSAoYSwgYiwgYykgPT4gZW5jYXNlZChvblZhbGlkLCBvbkludmFsaWQpKGEsIGIsIGMpXG5cbiAgY29uZmlnLnRoZW4gPSBjb25maWcub25JbnZhbGlkID0gZm4gPT4ge1xuICAgIG9uSW52YWxpZCA9IGZuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG4gIGNvbmZpZy5jYXRjaCA9IGNvbmZpZy5vblZhbGlkID0gZm4gPT4ge1xuICAgIG9uVmFsaWQgPSBmblxuICAgIHJldHVybiBjb25maWdcbiAgfVxuXG4gIHJldHVybiBjb25maWdcbn1cbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFFWkEsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDOzs7Ozs7OztBQVF0QyxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQUEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEFBQUc7RUFDbENBLEdBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDOzs7RUFHeERDLEdBQUcsQ0FBQyxTQUFTO0VBQ2JBLEdBQUcsQ0FBQyxPQUFPOztFQUVYRCxHQUFLLENBQUMsTUFBTSxHQUFHLFNBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxBQUFHLFNBQUEsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFBOztFQUVoRSxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEdBQUcsVUFBQSxFQUFFLENBQUEsQ0FBQyxBQUFHO0lBQ3JDLFNBQVMsR0FBRyxFQUFFO0lBQ2QsT0FBTyxNQUFNO0dBQ2Q7RUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBQSxFQUFFLENBQUEsQ0FBQyxBQUFHO0lBQ3BDLE9BQU8sR0FBRyxFQUFFO0lBQ1osT0FBTyxNQUFNO0dBQ2Q7O0VBRUQsT0FBTyxNQUFNO0NBQ2Q7In0=