|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- const ElectronStore = require('electron-store');
- const eStore = new ElectronStore();
-
- const PERSIST_KEY_NAME = '_persistKeys';
-
- const keyList = {
- add(key) {
- const keys = this.get();
- if (this.has(key)) {
- return;
- }
- keys.push(key);
- eStore.set(PERSIST_KEY_NAME, keys.join(','));
- },
- get() {
- return eStore
- .get(PERSIST_KEY_NAME, '')
- .split(',')
- .filter((a) => a);
- },
- has(key, keys) {
- return (keys || this.get()).find((iKey) => iKey === key);
- },
- remove(key) {
- const keys = this.get();
- eStore.set(PERSIST_KEY_NAME, keys.filter((iKey) => iKey !== key).join(','));
- },
- };
-
- const storage = {
- getItem(key) {
- return eStore.get(key);
- },
- setItem(key, value) {
- if (key === PERSIST_KEY_NAME) return;
- keyList.add(key);
- return eStore.set(key, value);
- },
- removeItem(key) {
- keyList.remove(key);
- return eStore.delete(key);
- },
- getAllItem() {
- const keys = keyList.get();
- const hash = {
- keyList: keys,
- };
- keys.forEach((key) => {
- hash[key] = eStore.get(key);
- });
- return hash;
- },
- };
-
- module.exports.storage = storage;
- module.exports.initialStorageEvents = function initialStorageEvents(ipcMain) {
- ipcMain.handle('storage:set', (_, { key, value }) => {
- storage.setItem(key, value);
- });
-
- ipcMain.handle('storage:remove', (_, { key }) => {
- storage.removeItem(key);
- });
-
- // ipcMain.handle('storage:getAll', () => {
- // return storage.getAllItem();
- // });
- };
|