refactor: split main runtime wrappers into focused modules

This commit is contained in:
2026-02-19 19:08:53 -08:00
parent 1efc0f8650
commit aaa19a33c5
35 changed files with 2347 additions and 263 deletions

View File

@@ -0,0 +1,32 @@
type YomitanExtensionLike = unknown;
type BrowserWindowLike = unknown;
export function createOpenYomitanSettingsHandler(deps: {
ensureYomitanExtensionLoaded: () => Promise<YomitanExtensionLike | null>;
openYomitanSettingsWindow: (params: {
yomitanExt: YomitanExtensionLike;
getExistingWindow: () => BrowserWindowLike | null;
setWindow: (window: BrowserWindowLike | null) => void;
}) => void;
getExistingWindow: () => BrowserWindowLike | null;
setWindow: (window: BrowserWindowLike | null) => void;
logWarn: (message: string) => void;
logError: (message: string, error: unknown) => void;
}) {
return (): void => {
void (async () => {
const extension = await deps.ensureYomitanExtensionLoaded();
if (!extension) {
deps.logWarn('Unable to open Yomitan settings: extension failed to load.');
return;
}
deps.openYomitanSettingsWindow({
yomitanExt: extension,
getExistingWindow: deps.getExistingWindow,
setWindow: deps.setWindow,
});
})().catch((error) => {
deps.logError('Failed to open Yomitan settings window.', error);
});
};
}