mirror of
https://github.com/hydralauncher/hydra.git
synced 2026-01-24 11:21:02 +00:00
29 lines
837 B
TypeScript
29 lines
837 B
TypeScript
import { registerEvent } from "../register-event";
|
|
import { db } from "@main/level";
|
|
import { getSublevelByName } from "./helpers";
|
|
import { logger } from "@main/services";
|
|
|
|
const leveldbGet = async (
|
|
_event: Electron.IpcMainInvokeEvent,
|
|
key: string,
|
|
sublevelName?: string | null,
|
|
valueEncoding: "json" | "utf8" = "json"
|
|
) => {
|
|
try {
|
|
if (sublevelName) {
|
|
// Note: sublevels always use "json" encoding, valueEncoding parameter is ignored
|
|
const sublevel = getSublevelByName(sublevelName);
|
|
return sublevel.get(key);
|
|
}
|
|
return db.get<string, unknown>(key, { valueEncoding });
|
|
} catch (error) {
|
|
if (error instanceof Error && error.name === "NotFoundError") {
|
|
return null;
|
|
}
|
|
logger.error("Error in leveldbGet", error);
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
registerEvent("leveldbGet", leveldbGet);
|