UNPKG

@theoplayer/react-native-engage

Version:
54 lines (53 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.readCluster = readCluster; exports.removeCluster = removeCluster; exports.storeCluster = storeCluster; var _reactNativeMmkv = require("react-native-mmkv"); var _DefaultCluster = require("../cluster/DefaultCluster"); const TAG = 'EngageStorage'; const storage = new _reactNativeMmkv.MMKV({ id: 'engage-storage' }); async function readCluster(client, clusterType) { try { return createCluster(client, clusterType, storage.getString(storageKeyForCluster(clusterType))); } catch (e) { console.warn(TAG, `Failed to retrieve cluster data from storage: ${e}`); } return createCluster(client, clusterType); } function createCluster(client, clusterType, json) { if (json) { try { const cluster = JSON.parse(json); return new _DefaultCluster.DefaultCluster(client, clusterType, cluster.entities); } catch (e) { console.warn(TAG, `Failed to retrieve cluster data from storage: ${e}`); } } return new _DefaultCluster.DefaultCluster(client, clusterType); } async function storeCluster(cluster) { const key = storageKeyForCluster(cluster.type); try { const json = JSON.stringify({ ...cluster, engageClient: undefined }); storage.set(key, json); return true; } catch (e) { console.warn(TAG, `Failed to store cluster data ${key}: ${e}`); return false; } } async function removeCluster(type) { storage.delete(storageKeyForCluster(type)); } function storageKeyForCluster(type) { return `engage/cluster/${type}`; } //# sourceMappingURL=Storage.js.map