UNPKG

vn-native-local-cloud

Version:

local cloud library for vn native

82 lines 2.44 kB
export class LocalCloud { public dataKey; constructor(){ this.dataKey = "@vn-native-data-key"; } /** * * @param {*} key => key of data * @param {*} value => vvalue of data , only string */ setItem(key,value){ return new Promise((resolve,reject) => { this.add_key_to_data_key(key).then((data) => { localStorage.setItem(key,value); return resolve("Set new data successfully") }).catch((err) => { return reject("set new data filed, please try again"); }); }); } /** * * @param {*} key => key of data */ getItem(key){ return new Promise((resolve,reject) => { let data = localStorage.getItem(key); if(data) { return resolve(data); } return reject("key is not exists"); }); } /** * * @param {*} key => key of data */ removeItem(keyRemove){ let listKey = localStorage.getItem(this.dataKey); if(listKey == '') { localStorage.removeItem(keyRemove); } else { let newList = []; let dataLocal = JSON.parse(listKey); let i =0; dataLocal.forEach(element => { if(element != keyRemove) { newList[i++] = element; } }); localStorage.removeItem(this.dataKey); localStorage.removeItem(keyRemove); localStorage.setItem(this.dataKey,JSON.stringify(newList)); } } /** * return all key use on cloud */ getAllData(){ return new Promise((resolve,reject) => { return resolve(localStorage.getItem(this.dataKey)); }); } /** * Add key to cloud for manager data */ add_key_to_data_key(key){ return new Promise((resolve,reject) => { let list = localStorage.getItem(this.dataKey); if(list != '' && list ) { let dataSet = JSON.parse(list); dataSet = dataSet.concat(key); return resolve(dataSet); } else { let dataSet = [key]; let _dataSet = JSON.stringify(dataSet); localStorage.setItem(this.dataKey,_dataSet); return resolve(dataSet); } }) } }