baasic-sdk-react-native
Version:
react-native SDK provides core functionality for building web and mobile applications on [Baasic](http://www.baasic.com/).
72 lines (71 loc) • 2.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var react_native_1 = require("react-native");
var NativeStorageHandler = /** @class */ (function () {
function NativeStorageHandler(inMemoryStorage) {
var _this = this;
this.inMemoryStorage = inMemoryStorage;
react_native_1.AsyncStorage.getAllKeys(function (err, keys) {
react_native_1.AsyncStorage.multiGet(keys, function (err, stores) {
stores.map(function (result, i, store) {
// get at each store's key/value so you can work with it
var key = store[i][0];
var value = store[i][1];
_this.inMemoryStorage.set(key, value);
});
});
});
}
NativeStorageHandler.prototype.clear = function () {
this.inMemoryStorage.clear();
react_native_1.AsyncStorage
.clear()
.catch(handleError);
};
NativeStorageHandler.prototype.remove = function (key) {
this.inMemoryStorage.remove(key);
react_native_1.AsyncStorage
.removeItem(key)
.catch(handleError);
};
NativeStorageHandler.prototype.set = function (key, data) {
this.inMemoryStorage.set(key, data);
react_native_1.AsyncStorage
.setItem(key, JSON.stringify(data))
.catch(handleError);
};
NativeStorageHandler.prototype.get = function (key) {
return this.inMemoryStorage.get(key);
};
NativeStorageHandler.prototype.getItemsForKeys = function (keys) {
var promises = keys.map(function (key) {
return react_native_1.AsyncStorage.getItem(key)
.then(function (data) { return JSON.parse(data); })
.then(function (data) { return new KeyValueItem(key, data); });
});
return Promise.all(promises).then(function (items) {
var result = {};
items.forEach(function (item) {
result[item.key] = item.data;
});
return result;
});
};
NativeStorageHandler.prototype.getAllAsync = function () {
return react_native_1.AsyncStorage
.getAllKeys()
.then(this.getItemsForKeys);
};
return NativeStorageHandler;
}());
exports.NativeStorageHandler = NativeStorageHandler;
var KeyValueItem = /** @class */ (function () {
function KeyValueItem(key, data) {
this.key = key;
this.data = data;
}
return KeyValueItem;
}());
function handleError(data) {
console.warn('IStorageHandler -> StorageHandler -> AsyncStorage Error', data);
}