parse
Version:
Parse JavaScript SDK
86 lines (85 loc) • 3.01 kB
JavaScript
;
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
var _LocalDatastoreUtils = require("./LocalDatastoreUtils");
var _StorageController = _interopRequireDefault(require("./StorageController.react-native"));
const LocalDatastoreController = {
async fromPinWithName(name) {
const values = await _StorageController.default.getItemAsync(name);
if (!values) {
return [];
}
const objects = JSON.parse(values);
return objects;
},
async pinWithName(name, value) {
try {
const values = (0, _stringify.default)(value);
await _StorageController.default.setItemAsync(name, values);
} catch (e) {
// Quota exceeded, possibly due to Safari Private Browsing mode
console.error(e.message);
}
},
unPinWithName(name) {
return _StorageController.default.removeItemAsync(name);
},
async getAllContents() {
const keys = await _StorageController.default.getAllKeysAsync();
const batch = [];
for (let i = 0; i < keys.length; i += 1) {
const key = keys[i];
if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {
batch.push(key);
}
}
const LDS = {};
let results = [];
try {
results = await _StorageController.default.multiGet(batch);
} catch (error) {
console.error('Error getAllContents: ', error);
return {};
}
(0, _forEach.default)(results).call(results, pair => {
const [key, value] = pair;
try {
LDS[key] = JSON.parse(value);
} catch (_) {
LDS[key] = null;
}
});
return LDS;
},
// Used for testing
async getRawStorage() {
var _context;
const keys = await _StorageController.default.getAllKeysAsync();
const storage = {};
const results = await _StorageController.default.multiGet(keys);
(0, _map.default)(_context = results).call(_context, pair => {
const [key, value] = pair;
storage[key] = value;
});
return storage;
},
async clear() {
const keys = await _StorageController.default.getAllKeysAsync();
const batch = [];
for (let i = 0; i < keys.length; i += 1) {
const key = keys[i];
if ((0, _LocalDatastoreUtils.isLocalDatastoreKey)(key)) {
batch.push(key);
}
}
await _StorageController.default.multiRemove(batch).catch(error => console.error('Error clearing local datastore: ', error));
}
};
var _default = exports.default = LocalDatastoreController;