1
0
mirror of https://github.com/upscayl/upscayl.git synced 2024-12-01 02:27:16 +01:00
upscayl/electron/utils/local-storage.ts

37 lines
1017 B
TypeScript
Raw Normal View History

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
);
},
};