mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-13 20:12:54 -07:00
56 lines
2.2 KiB
TypeScript
56 lines
2.2 KiB
TypeScript
import {
|
|
createEnsureYomitanExtensionLoadedHandler,
|
|
createLoadYomitanExtensionHandler,
|
|
} from './yomitan-extension-loader';
|
|
import {
|
|
createBuildEnsureYomitanExtensionLoadedMainDepsHandler,
|
|
createBuildLoadYomitanExtensionMainDepsHandler,
|
|
} from './yomitan-extension-loader-main-deps';
|
|
|
|
type LoadYomitanExtensionMainDeps = Parameters<
|
|
typeof createBuildLoadYomitanExtensionMainDepsHandler
|
|
>[0];
|
|
|
|
type EnsureYomitanExtensionLoadedMainDeps = Omit<
|
|
Parameters<typeof createBuildEnsureYomitanExtensionLoadedMainDepsHandler>[0],
|
|
'loadYomitanExtension'
|
|
>;
|
|
|
|
export type YomitanExtensionRuntimeDeps = LoadYomitanExtensionMainDeps &
|
|
EnsureYomitanExtensionLoadedMainDeps;
|
|
|
|
export function createYomitanExtensionRuntime(deps: YomitanExtensionRuntimeDeps) {
|
|
const buildLoadYomitanExtensionMainDepsHandler = createBuildLoadYomitanExtensionMainDepsHandler({
|
|
loadYomitanExtensionCore: deps.loadYomitanExtensionCore,
|
|
userDataPath: deps.userDataPath,
|
|
externalProfilePath: deps.externalProfilePath,
|
|
getYomitanParserWindow: deps.getYomitanParserWindow,
|
|
setYomitanParserWindow: deps.setYomitanParserWindow,
|
|
setYomitanParserReadyPromise: deps.setYomitanParserReadyPromise,
|
|
setYomitanParserInitPromise: deps.setYomitanParserInitPromise,
|
|
setYomitanExtension: deps.setYomitanExtension,
|
|
setYomitanSession: deps.setYomitanSession,
|
|
});
|
|
const loadYomitanExtensionHandler = createLoadYomitanExtensionHandler(
|
|
buildLoadYomitanExtensionMainDepsHandler(),
|
|
);
|
|
|
|
const buildEnsureYomitanExtensionLoadedMainDepsHandler =
|
|
createBuildEnsureYomitanExtensionLoadedMainDepsHandler({
|
|
getYomitanExtension: deps.getYomitanExtension,
|
|
getLoadInFlight: deps.getLoadInFlight,
|
|
setLoadInFlight: deps.setLoadInFlight,
|
|
loadYomitanExtension: () => loadYomitanExtensionHandler(),
|
|
});
|
|
const ensureYomitanExtensionLoadedHandler = createEnsureYomitanExtensionLoadedHandler(
|
|
buildEnsureYomitanExtensionLoadedMainDepsHandler(),
|
|
);
|
|
|
|
return {
|
|
loadYomitanExtension: (): Promise<ReturnType<typeof deps.getYomitanExtension>> =>
|
|
loadYomitanExtensionHandler(),
|
|
ensureYomitanExtensionLoaded: (): Promise<ReturnType<typeof deps.getYomitanExtension>> =>
|
|
ensureYomitanExtensionLoadedHandler(),
|
|
};
|
|
}
|