2023-11-02 16:03:21 +01:00
|
|
|
import { getMainWindow } from "../main-window";
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @description LocalStorage wrapper for the main window
|
|
|
|
* @example
|
|
|
|
* import { settings } from "./utils/settings";
|
|
|
|
*
|
|
|
|
* // Get a value
|
|
|
|
* const value = settings.get("key", true);
|
|
|
|
*
|
|
|
|
* // Set a value
|
|
|
|
* settings.set("key", value);
|
|
|
|
*/
|
2023-11-10 12:41:35 +01:00
|
|
|
export const localStorage = {
|
|
|
|
get: <T>(key: string, parse: boolean = false): T | null => {
|
2023-11-02 16:03:21 +01:00
|
|
|
const mainWindow = getMainWindow();
|
2023-11-04 11:02:44 +01:00
|
|
|
if (!mainWindow) return null;
|
2023-11-02 16:03:21 +01:00
|
|
|
let result = null;
|
|
|
|
mainWindow.webContents
|
|
|
|
.executeJavaScript(`localStorage.getItem("${key}");`, true)
|
|
|
|
.then((localStorageValue: any) => {
|
|
|
|
if (localStorageValue) {
|
|
|
|
result = parse ? JSON.parse(localStorageValue) : localStorageValue;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
},
|
|
|
|
set: (key: string, value: any) => {
|
|
|
|
const mainWindow = getMainWindow();
|
|
|
|
if (!mainWindow) return;
|
|
|
|
mainWindow.webContents.executeJavaScript(
|
|
|
|
`localStorage.setItem("${key}", ${JSON.stringify(value)});`,
|
|
|
|
true
|
|
|
|
);
|
|
|
|
},
|
|
|
|
};
|