@data-client/react
Version:
Async State Management without the Management. REST, GraphQL, SSE, Websockets, Fetch
38 lines (37 loc) • 7.05 kB
JavaScript
import { NetworkManager, SubscriptionManager, PollingSubscription, DevToolsManager } from '../managers/index.js';
/* istanbul ignore next */
/** Returns the default Managers used by DataProvider.
*
* @see https://dataclient.io/docs/api/getDefaultManagers
*/
let getDefaultManagers = ({
networkManager,
subscriptionManager: _subscriptionManager = PollingSubscription
} = {}) => _subscriptionManager === null ? [constructManager(NetworkManager, networkManager)] : [constructManager(NetworkManager, networkManager), constructManager(SubscriptionManager, _subscriptionManager)];
/* istanbul ignore else */
if (process.env.NODE_ENV !== 'production') {
getDefaultManagers = ({
devToolsManager,
networkManager,
subscriptionManager: _subscriptionManager2 = PollingSubscription
} = {}) => {
if (networkManager === null) {
console.error('Disabling NetworkManager is not allowed.');
networkManager = {};
}
const nm = constructManager(NetworkManager, networkManager);
const managers = [nm];
if (_subscriptionManager2 !== null) {
managers.push(constructManager(SubscriptionManager, _subscriptionManager2));
}
if (devToolsManager !== null) {
managers.unshift(devToolsManager instanceof DevToolsManager ? devToolsManager : new DevToolsManager(devToolsManager, nm.skipLogging.bind(nm)));
}
return managers;
};
}
export { getDefaultManagers };
function constructManager(Mgr, optionOrInstance) {
return optionOrInstance instanceof Mgr ? optionOrInstance : new Mgr(optionOrInstance);
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOZXR3b3JrTWFuYWdlciIsIlN1YnNjcmlwdGlvbk1hbmFnZXIiLCJQb2xsaW5nU3Vic2NyaXB0aW9uIiwiRGV2VG9vbHNNYW5hZ2VyIiwiZ2V0RGVmYXVsdE1hbmFnZXJzIiwibmV0d29ya01hbmFnZXIiLCJzdWJzY3JpcHRpb25NYW5hZ2VyIiwiY29uc3RydWN0TWFuYWdlciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRldlRvb2xzTWFuYWdlciIsImNvbnNvbGUiLCJlcnJvciIsIm5tIiwibWFuYWdlcnMiLCJwdXNoIiwidW5zaGlmdCIsInNraXBMb2dnaW5nIiwiYmluZCIsIk1nciIsIm9wdGlvbk9ySW5zdGFuY2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy9nZXREZWZhdWx0TWFuYWdlcnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGV2VG9vbHNDb25maWcsIE1hbmFnZXIgfSBmcm9tICdAZGF0YS1jbGllbnQvY29yZSc7XG5cbmltcG9ydCB7XG4gIE5ldHdvcmtNYW5hZ2VyLFxuICBTdWJzY3JpcHRpb25NYW5hZ2VyLFxuICBQb2xsaW5nU3Vic2NyaXB0aW9uLFxuICBEZXZUb29sc01hbmFnZXIsXG59IGZyb20gJy4uL21hbmFnZXJzL2luZGV4LmpzJztcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbi8qKiBSZXR1cm5zIHRoZSBkZWZhdWx0IE1hbmFnZXJzIHVzZWQgYnkgRGF0YVByb3ZpZGVyLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL2dldERlZmF1bHRNYW5hZ2Vyc1xuICovXG5sZXQgZ2V0RGVmYXVsdE1hbmFnZXJzOiAoe1xuICBkZXZUb29sc01hbmFnZXIsXG4gIG5ldHdvcmtNYW5hZ2VyLFxuICBzdWJzY3JpcHRpb25NYW5hZ2VyLFxufT86IEdldE1hbmFnZXJzT3B0aW9ucykgPT4gTWFuYWdlcltdID0gKHtcbiAgbmV0d29ya01hbmFnZXIsXG4gIHN1YnNjcmlwdGlvbk1hbmFnZXIgPSBQb2xsaW5nU3Vic2NyaXB0aW9uLFxufSA9IHt9KSA9PlxuICBzdWJzY3JpcHRpb25NYW5hZ2VyID09PSBudWxsID9cbiAgICBbY29uc3RydWN0TWFuYWdlcihOZXR3b3JrTWFuYWdlciwgbmV0d29ya01hbmFnZXIpXVxuICA6IFtcbiAgICAgIGNvbnN0cnVjdE1hbmFnZXIoTmV0d29ya01hbmFnZXIsIG5ldHdvcmtNYW5hZ2VyKSxcbiAgICAgIGNvbnN0cnVjdE1hbmFnZXIoU3Vic2NyaXB0aW9uTWFuYWdlciwgc3Vic2NyaXB0aW9uTWFuYWdlciksXG4gICAgXTtcbi8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBnZXREZWZhdWx0TWFuYWdlcnMgPSAoe1xuICAgIGRldlRvb2xzTWFuYWdlcixcbiAgICBuZXR3b3JrTWFuYWdlcixcbiAgICBzdWJzY3JpcHRpb25NYW5hZ2VyID0gUG9sbGluZ1N1YnNjcmlwdGlvbixcbiAgfTogR2V0TWFuYWdlcnNPcHRpb25zID0ge30pOiBNYW5hZ2VyW10gPT4ge1xuICAgIGlmIChuZXR3b3JrTWFuYWdlciA9PT0gbnVsbCkge1xuICAgICAgY29uc29sZS5lcnJvcignRGlzYWJsaW5nIE5ldHdvcmtNYW5hZ2VyIGlzIG5vdCBhbGxvd2VkLicpO1xuICAgICAgbmV0d29ya01hbmFnZXIgPSB7fTtcbiAgICB9XG4gICAgY29uc3Qgbm0gPSBjb25zdHJ1Y3RNYW5hZ2VyKE5ldHdvcmtNYW5hZ2VyLCBuZXR3b3JrTWFuYWdlcik7XG4gICAgY29uc3QgbWFuYWdlcnM6IE1hbmFnZXJbXSA9IFtubV07XG4gICAgaWYgKHN1YnNjcmlwdGlvbk1hbmFnZXIgIT09IG51bGwpIHtcbiAgICAgIG1hbmFnZXJzLnB1c2goY29uc3RydWN0TWFuYWdlcihTdWJzY3JpcHRpb25NYW5hZ2VyLCBzdWJzY3JpcHRpb25NYW5hZ2VyKSk7XG4gICAgfVxuICAgIGlmIChkZXZUb29sc01hbmFnZXIgIT09IG51bGwpIHtcbiAgICAgIG1hbmFnZXJzLnVuc2hpZnQoXG4gICAgICAgIGRldlRvb2xzTWFuYWdlciBpbnN0YW5jZW9mIERldlRvb2xzTWFuYWdlciA/IGRldlRvb2xzTWFuYWdlciA6IChcbiAgICAgICAgICBuZXcgRGV2VG9vbHNNYW5hZ2VyKGRldlRvb2xzTWFuYWdlciwgbm0uc2tpcExvZ2dpbmcuYmluZChubSkpXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbWFuYWdlcnM7XG4gIH07XG59XG5leHBvcnQgeyBnZXREZWZhdWx0TWFuYWdlcnMgfTtcblxuZnVuY3Rpb24gY29uc3RydWN0TWFuYWdlcjxcbiAgTSBleHRlbmRzIHsgbmV3ICguLi5hcmdzOiBhbnkpOiBNYW5hZ2VyIH0sXG4gIE8gZXh0ZW5kcyBJbnN0YW5jZVR5cGU8TT4gfCBDb25zdHJ1Y3RvckFyZ3M8TT4sXG4+KE1ncjogTSwgb3B0aW9uT3JJbnN0YW5jZTogTyk6IEluc3RhbmNlVHlwZTxNPiB7XG4gIHJldHVybiBvcHRpb25Pckluc3RhbmNlIGluc3RhbmNlb2YgTWdyID9cbiAgICAgIChvcHRpb25Pckluc3RhbmNlIGFzIGFueSlcbiAgICA6IChuZXcgTWdyKG9wdGlvbk9ySW5zdGFuY2UpIGFzIGFueSk7XG59XG5cbmV4cG9ydCB0eXBlIEdldE1hbmFnZXJzT3B0aW9ucyA9IHtcbiAgZGV2VG9vbHNNYW5hZ2VyPzogRGV2VG9vbHNNYW5hZ2VyIHwgRGV2VG9vbHNDb25maWcgfCBudWxsO1xuICBuZXR3b3JrTWFuYWdlcj86IE5ldHdvcmtNYW5hZ2VyIHwgQ29uc3RydWN0b3JBcmdzPHR5cGVvZiBOZXR3b3JrTWFuYWdlcj47XG4gIHN1YnNjcmlwdGlvbk1hbmFnZXI/OlxuICAgIHwgU3Vic2NyaXB0aW9uTWFuYWdlclxuICAgIHwgQ29uc3RydWN0b3JBcmdzPHR5cGVvZiBTdWJzY3JpcHRpb25NYW5hZ2VyPlxuICAgIHwgbnVsbDtcbn07XG5cbmV4cG9ydCB0eXBlIENvbnN0cnVjdG9yQXJnczxUIGV4dGVuZHMgeyBuZXcgKC4uLmFyZ3M6IGFueSk6IGFueSB9PiA9XG4gIFQgZXh0ZW5kcyB7IG5ldyAob3B0aW9uczogaW5mZXIgTyk6IGFueSB9ID8gTyA6IG5ldmVyO1xuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUNFQSxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMsbUJBQW1CLEVBQ25CQyxlQUFlLFFBQ1Ysc0JBQXNCOztBQUU3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUMsa0JBSWdDLEdBQUdBLENBQUM7RUFDdENDLGNBQWM7RUFDZEMsbUJBQW1CLEVBQW5CQSxvQkFBbUIsR0FBR0o7QUFDeEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUNKSSxvQkFBbUIsS0FBSyxJQUFJLEdBQzFCLENBQUNDLGdCQUFnQixDQUFDUCxjQUFjLEVBQUVLLGNBQWMsQ0FBQyxDQUFDLEdBQ2xELENBQ0VFLGdCQUFnQixDQUFDUCxjQUFjLEVBQUVLLGNBQWMsQ0FBQyxFQUNoREUsZ0JBQWdCLENBQUNOLG1CQUFtQixFQUFFSyxvQkFBbUIsQ0FBQyxDQUMzRDtBQUNMO0FBQ0EsSUFBSUUsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7RUFDekNOLGtCQUFrQixHQUFHQSxDQUFDO0lBQ3BCTyxlQUFlO0lBQ2ZOLGNBQWM7SUFDZEMsbUJBQW1CLEVBQW5CQSxxQkFBbUIsR0FBR0o7RUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWdCO0lBQ3hDLElBQUlHLGNBQWMsS0FBSyxJQUFJLEVBQUU7TUFDM0JPLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLDBDQUEwQyxDQUFDO01BQ3pEUixjQUFjLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCO0lBQ0EsTUFBTVMsRUFBRSxHQUFHUCxnQkFBZ0IsQ0FBQ1AsY0FBYyxFQUFFSyxjQUFjLENBQUM7SUFDM0QsTUFBTVUsUUFBbUIsR0FBRyxDQUFDRCxFQUFFLENBQUM7SUFDaEMsSUFBSVIscUJBQW1CLEtBQUssSUFBSSxFQUFFO01BQ2hDUyxRQUFRLENBQUNDLElBQUksQ0FBQ1QsZ0JBQWdCLENBQUNOLG1CQUFtQixFQUFFSyxxQkFBbUIsQ0FBQyxDQUFDO0lBQzNFO0lBQ0EsSUFBSUssZUFBZSxLQUFLLElBQUksRUFBRTtNQUM1QkksUUFBUSxDQUFDRSxPQUFPLENBQ2ROLGVBQWUsWUFBWVIsZUFBZSxHQUFHUSxlQUFlLEdBQzFELElBQUlSLGVBQWUsQ0FBQ1EsZUFBZSxFQUFFRyxFQUFFLENBQUNJLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDTCxFQUFFLENBQUMsQ0FFaEUsQ0FBQztJQUNIO0lBQ0EsT0FBT0MsUUFBUTtFQUNqQixDQUFDO0FBQ0g7QUFDQSxTQUFTWCxrQkFBa0I7QUFFM0IsU0FBU0csZ0JBQWdCQSxDQUd2QmEsR0FBTSxFQUFFQyxnQkFBbUIsRUFBbUI7RUFDOUMsT0FBT0EsZ0JBQWdCLFlBQVlELEdBQUcsR0FDakNDLGdCQUFnQixHQUNoQixJQUFJRCxHQUFHLENBQUNDLGdCQUFnQixDQUFTO0FBQ3hDIiwiaWdub3JlTGlzdCI6W119