recoil-toolkit
Version:
47 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRecoilStore = exports.flushGetStorePending = exports.set = exports.DEFAULT_STORE = exports.recoilStores = void 0;
exports.recoilStores = {};
exports.DEFAULT_STORE = '$defaultStore$';
function set(recoilVal, valOrUpdater) {
var _a, _b;
if ((_a = exports.recoilStores[exports.DEFAULT_STORE]) === null || _a === void 0 ? void 0 : _a.set)
return (_b = exports.recoilStores[exports.DEFAULT_STORE]) === null || _b === void 0 ? void 0 : _b.set(recoilVal, valOrUpdater);
throw new Error('Recoil Toolkit Tunnel not ready');
}
exports.set = set;
var pendigGetStorePromises = [];
var flushGetStorePending = function (name) {
pendigGetStorePromises.forEach(function (p) {
if (p.pending && p.name === name) {
// @ts-ignore
if (exports.recoilStores[name]) {
// @ts-ignore
p.resolve(exports.recoilStores[name]);
}
else
p.reject(new Error('no store found'));
p.pending = false;
}
});
};
exports.flushGetStorePending = flushGetStorePending;
function getRecoilStore(name) {
if (name === void 0) { name = exports.DEFAULT_STORE; }
return new Promise(function (resolve, reject) {
if (exports.recoilStores[name]) {
// @ts-ignore
resolve(exports.recoilStores[name]);
}
else {
pendigGetStorePromises.push({
resolve: resolve,
reject: reject,
name: name,
pending: true,
});
}
});
}
exports.getRecoilStore = getRecoilStore;
//# sourceMappingURL=getStore.js.map