Files
testing-tool/services/storage.tsx
T
2026-01-27 23:09:57 +08:00

40 lines
1022 B
TypeScript

// src/services/storage.ts
import {isExtension} from '../utils/env';
export const storage = {
set: async (items) => {
if (isExtension()) {
return chrome.storage.local.set(items);
} else {
// Web 兼容:写入 localStorage
Object.keys(items).forEach(key => {
localStorage.setItem(key, JSON.stringify(items[key]));
});
return Promise.resolve();
}
},
get: async (keys) => {
if (isExtension()) {
return chrome.storage.local.get(keys);
} else {
// Web 兼容:读取 localStorage
const result = {};
const keyList = Array.isArray(keys) ? keys : [keys];
keyList.forEach(key => {
const val = localStorage.getItem(key);
if (val) result[key] = JSON.parse(val);
});
return Promise.resolve(result);
}
},
remove: async (key) => {
if (isExtension()) {
return chrome.storage.local.remove(key);
} else {
localStorage.removeItem(key);
return Promise.resolve();
}
}
};