@morjs/runtime-web
Version:
mor runtime for web
108 lines • 2.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const prefix = 'TiGa-';
const setStorageFn = ({ key, data }) => {
if (key && data !== undefined) {
const _key = `${prefix}${key}`;
localStorage.setItem(_key, JSON.stringify(data));
}
};
const removeStorageFn = (key) => {
if (key) {
const _key = `${prefix}${key}`;
localStorage.removeItem(_key);
}
else {
console.error('key 为空');
}
};
const getStorageFn = ({ key }) => {
if (!key) {
return {
err: 'key 不能为空'
};
}
const _key = `${prefix}${key}`;
const value = localStorage.getItem(_key);
return {
data: value ? JSON.parse(value) : value
};
};
exports.default = {
setStorage(options) {
return new Promise((resolve, reject) => {
try {
setStorageFn(options);
resolve();
}
catch (err) {
reject(err);
}
});
},
getStorage(options) {
return new Promise((resolve) => {
const data = getStorageFn(options);
resolve(data);
});
},
removeStorage(options) {
return new Promise((resolve, reject) => {
if (options.key) {
removeStorageFn(options.key);
resolve();
}
else {
console.error('键值为空');
reject();
}
});
},
getStorageInfo() {
return new Promise((resolve) => {
const keys = [];
for (const key in localStorage) {
if (/^TiGa-/.test(key)) {
const _key = key.replace(/^TiGa-/, '');
keys.push(_key);
}
}
resolve({
keys
});
});
},
clearStorage() {
localStorage.clear();
},
setStorageSync(option) {
setStorageFn(option);
},
getStorageSync(option) {
return getStorageFn(option);
},
removeStorageSync({ key }) {
if (key) {
removeStorageFn(key);
}
else {
console.error('键值为空');
}
},
getStorageInfoSync() {
const keys = [];
for (const key in localStorage) {
if (/^TiGa-/.test(key)) {
const _key = key.replace(/^TiGa-/, '');
keys.push(_key);
}
}
return {
keys
};
},
clearStorageSync() {
localStorage.clear();
}
};
//# sourceMappingURL=storage.js.map