@splitsoftware/splitio-react-native
Version:
Split SDK for React Native
49 lines • 2.3 kB
JavaScript
import { splitApiFactory } from '@splitsoftware/splitio-commons/esm/services/splitApi';
import { syncManagerOnlineFactory } from '@splitsoftware/splitio-commons/esm/sync/syncManagerOnline';
import { pushManagerFactory } from '@splitsoftware/splitio-commons/esm/sync/streaming/pushManager';
import { pollingManagerCSFactory } from '@splitsoftware/splitio-commons/esm/sync/polling/pollingManagerCS';
import { sdkManagerFactory } from '@splitsoftware/splitio-commons/esm/sdkManager/index';
import { sdkClientMethodCSFactory } from '@splitsoftware/splitio-commons/esm/sdkClient/sdkClientMethodCS';
import { impressionObserverCSFactory } from '@splitsoftware/splitio-commons/esm/trackers/impressionObserver/impressionObserverCS';
import { EventEmitter } from '@splitsoftware/splitio-commons/esm/utils/MinEvents';
import { LOCALHOST_MODE } from '@splitsoftware/splitio-commons/esm/utils/constants';
import { createUserConsentAPI } from '@splitsoftware/splitio-commons/esm/consent/sdkUserConsent';
import { now } from '@splitsoftware/splitio-commons/esm/utils/timeTracker/now/browser';
import { localhostFromObjectFactory } from '@splitsoftware/splitio-commons/esm/sync/offline/LocalhostFromObject';
import { RNSignalListener } from './RNSignalListener';
import { getEventSource } from './getEventSource';
const platform = {
// Return global fetch which is always available in RN runtime
getFetch() {
return fetch;
},
EventEmitter,
getEventSource,
now
};
const syncManagerOnlineCSFactory = syncManagerOnlineFactory(pollingManagerCSFactory, pushManagerFactory);
export function getModules(settings) {
const modules = {
settings,
platform,
storageFactory: settings.storage,
splitApiFactory,
syncManagerFactory: syncManagerOnlineCSFactory,
sdkManagerFactory,
sdkClientMethodFactory: sdkClientMethodCSFactory,
SignalListener: RNSignalListener,
impressionsObserverFactory: impressionObserverCSFactory,
extraProps: params => {
return {
UserConsent: createUserConsentAPI(params)
};
}
};
if (settings.mode === LOCALHOST_MODE) {
modules.splitApiFactory = undefined;
modules.syncManagerFactory = localhostFromObjectFactory;
modules.SignalListener = undefined;
}
return modules;
}
//# sourceMappingURL=getModules.js.map