Files
pezkuwi-ui/packages/exampleReactNative/nodeGlobalsShim.js
T
Jaco Greeff b2ba6aa7ae Bumps
2020-04-07 21:56:19 +02:00

52 lines
1.2 KiB
JavaScript

// Copyright 2017-2020 @polkadot/example-reactnative authors & contributors
// This software may be modified and distributed under the terms
// of the Apache-2.0 license. See the LICENSE file for details.
/* eslint-disable no-global-assign */
import 'fast-text-encoding';
import AsyncStorage from '@react-native-community/async-storage';
class Storage {
constructor () {
this.dataMap = new Map();
this.loading = true;
}
init = async () => {
const keys = await AsyncStorage.getAllKeys();
const data = await AsyncStorage.multiGet(keys);
data.forEach(this.saveItem.bind(this));
this.loading = false;
return [...data];
}
getItem = (key) => {
return this.dataMap.get(key);
}
setItem = (key, value) => {
this.dataMap.set(key, value);
return AsyncStorage.setItem(key, value);
}
remove = (key) => {
this.dataMap.delete(key);
return AsyncStorage.removeItem(key);
}
saveItem = (item) => {
this.dataMap.set(item[0], item[1]);
}
}
// Set global process variable expected by some classes.
global.process = require('process');
global.navigator.userAgent = '';
window = { location: { host: '' } };
global.localStorage = new Storage();