resolve-once-map
Version:
Resolves a promise only once and memoizes the result in a map
32 lines • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return resolveOnceMap;
}
});
var _resolveonce = /*#__PURE__*/ _interop_require_default(require("resolve-once"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function resolveOnceMap(fn) {
var resolvers = {};
return function(key) {
if (!resolvers[key]) {
resolvers[key] = (0, _resolveonce.default)(function() {
try {
return fn(key);
} catch (err) {
return Promise.reject(err);
}
});
}
return resolvers[key]();
};
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }