@launchdarkly/react-native-client-sdk
Version:
React Native LaunchDarkly SDK
25 lines • 1.29 kB
JavaScript
/* eslint-disable @typescript-eslint/no-require-imports */
export default function getAsyncStorage(logger) {
try {
return require('@react-native-async-storage/async-storage').default;
}
catch (e) {
// Use an in-memory fallback if async-storage is unavailable.
// This preserves session-level persistence (flag caching, generated keys,
// context index) but data will not survive app restarts.
logger.warn('AsyncStorage is not available. Using in-memory storage as a fallback - cached flags, generated keys, and context data will not persist across app restarts. Please see https://launchdarkly.github.io/js-core/packages/sdk/react-native/docs/interfaces/LDOptions.html#storage for more information.');
const memoryStore = new Map();
return {
getItem: (key) => { var _a; return Promise.resolve((_a = memoryStore.get(key)) !== null && _a !== void 0 ? _a : null); },
setItem: (key, value) => {
memoryStore.set(key, value);
return Promise.resolve();
},
removeItem: (key) => {
memoryStore.delete(key);
return Promise.resolve();
},
};
}
}
//# sourceMappingURL=ConditionalAsyncStorage.js.map