UNPKG

react-instantsearch-core

Version:
32 lines (30 loc) 922 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapPromiseWithState = wrapPromiseWithState; // This is needed in order to work with RSC Suspense, perhaps they will later provide a wrapper. function isStatefulPromise(promise) { return 'status' in promise; } function wrapPromiseWithState(promise) { if (isStatefulPromise(promise)) { return promise; } var pendingPromise = promise; pendingPromise.status = 'pending'; pendingPromise.then(function (value) { if (pendingPromise.status === 'pending') { var fulfilledPromise = pendingPromise; fulfilledPromise.status = 'fulfilled'; fulfilledPromise.value = value; } }, function (reason) { if (pendingPromise.status === 'pending') { var rejectedPromise = pendingPromise; rejectedPromise.status = 'rejected'; rejectedPromise.reason = reason; } }); return promise; }