mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
Standardize core service module and export names to reduce naming ambiguity and make imports predictable across runtime, tests, scripts, and docs.
63 lines
2.2 KiB
TypeScript
63 lines
2.2 KiB
TypeScript
import { CliArgs } from "../cli/args";
|
|
import type { ResolvedConfig } from "../types";
|
|
import type { StartupBootstrapRuntimeDeps } from "../core/services/startup";
|
|
import type { LogLevelSource } from "../logger";
|
|
|
|
export interface StartupBootstrapRuntimeFactoryDeps {
|
|
argv: string[];
|
|
parseArgs: (argv: string[]) => CliArgs;
|
|
setLogLevel: (level: string, source: LogLevelSource) => void;
|
|
forceX11Backend: (args: CliArgs) => void;
|
|
enforceUnsupportedWaylandMode: (args: CliArgs) => void;
|
|
shouldStartApp: (args: CliArgs) => boolean;
|
|
getDefaultSocketPath: () => string;
|
|
defaultTexthookerPort: number;
|
|
configDir: string;
|
|
defaultConfig: ResolvedConfig;
|
|
generateConfigTemplate: (config: ResolvedConfig) => string;
|
|
generateDefaultConfigFile: (
|
|
args: CliArgs,
|
|
options: {
|
|
configDir: string;
|
|
defaultConfig: unknown;
|
|
generateTemplate: (config: unknown) => string;
|
|
},
|
|
) => Promise<number>;
|
|
onConfigGenerated: (exitCode: number) => void;
|
|
onGenerateConfigError: (error: Error) => void;
|
|
startAppLifecycle: (args: CliArgs) => void;
|
|
}
|
|
|
|
export function createStartupBootstrapRuntimeDeps(
|
|
params: StartupBootstrapRuntimeFactoryDeps,
|
|
): StartupBootstrapRuntimeDeps {
|
|
return {
|
|
argv: params.argv,
|
|
parseArgs: params.parseArgs,
|
|
setLogLevel: params.setLogLevel,
|
|
forceX11Backend: (args: CliArgs) => params.forceX11Backend(args),
|
|
enforceUnsupportedWaylandMode: (args: CliArgs) =>
|
|
params.enforceUnsupportedWaylandMode(args),
|
|
getDefaultSocketPath: params.getDefaultSocketPath,
|
|
defaultTexthookerPort: params.defaultTexthookerPort,
|
|
runGenerateConfigFlow: (args: CliArgs) => {
|
|
if (!args.generateConfig || params.shouldStartApp(args)) {
|
|
return false;
|
|
}
|
|
params
|
|
.generateDefaultConfigFile(args, {
|
|
configDir: params.configDir,
|
|
defaultConfig: params.defaultConfig,
|
|
generateTemplate: (config: unknown) =>
|
|
params.generateConfigTemplate(config as ResolvedConfig),
|
|
})
|
|
.then((exitCode) => {
|
|
params.onConfigGenerated(exitCode);
|
|
})
|
|
.catch(params.onGenerateConfigError);
|
|
return true;
|
|
},
|
|
startAppLifecycle: params.startAppLifecycle,
|
|
};
|
|
}
|