@shopify/react-async
Version:
Tools for creating powerful, asynchronously-loaded React components.
46 lines (45 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var prefetch_1 = require("../context/prefetch");
tslib_1.__exportStar(require("../testing"), exports);
function createPrefetchManager(registered) {
if (registered === void 0) { registered = []; }
return new prefetch_1.PrefetchManager(registered);
}
exports.createPrefetchManager = createPrefetchManager;
function createResolvablePromise(value) {
var promiseResolve;
var resolved = false;
var promise = new Promise(function (resolve) {
promiseResolve = resolve;
});
return {
promise: promise,
resolve: function () {
promiseResolve(value);
resolved = true;
return promise;
},
resolved: function () { return resolved; },
};
}
exports.createResolvablePromise = createResolvablePromise;
function createRejectablePromise(value) {
var promiseReject;
var rejected = false;
// eslint-disable-next-line promise/param-names
var promise = new Promise(function (_, reject) {
promiseReject = reject;
});
return {
promise: promise,
reject: function () {
promiseReject(value);
rejected = true;
return promise.catch(function () { });
},
rejected: function () { return rejected; },
};
}
exports.createRejectablePromise = createRejectablePromise;