mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-03 06:22:41 -08:00
30 lines
1.2 KiB
TypeScript
30 lines
1.2 KiB
TypeScript
import type { CliArgs, CliCommandSource } from '../../cli/args';
|
|
import { createHandleTexthookerOnlyModeTransitionHandler } from './cli-command-prechecks';
|
|
import { createBuildHandleTexthookerOnlyModeTransitionMainDepsHandler } from './cli-command-prechecks-main-deps';
|
|
|
|
type HandleTexthookerOnlyModeTransitionMainDeps = Parameters<
|
|
typeof createBuildHandleTexthookerOnlyModeTransitionMainDepsHandler
|
|
>[0];
|
|
|
|
export function createCliCommandRuntimeHandler<TCliContext>(deps: {
|
|
handleTexthookerOnlyModeTransitionMainDeps: HandleTexthookerOnlyModeTransitionMainDeps;
|
|
createCliCommandContext: () => TCliContext;
|
|
handleCliCommandRuntimeServiceWithContext: (
|
|
args: CliArgs,
|
|
source: CliCommandSource,
|
|
cliContext: TCliContext,
|
|
) => void;
|
|
}) {
|
|
const handleTexthookerOnlyModeTransitionHandler = createHandleTexthookerOnlyModeTransitionHandler(
|
|
createBuildHandleTexthookerOnlyModeTransitionMainDepsHandler(
|
|
deps.handleTexthookerOnlyModeTransitionMainDeps,
|
|
)(),
|
|
);
|
|
|
|
return (args: CliArgs, source: CliCommandSource = 'initial'): void => {
|
|
handleTexthookerOnlyModeTransitionHandler(args);
|
|
const cliContext = deps.createCliCommandContext();
|
|
deps.handleCliCommandRuntimeServiceWithContext(args, source, cliContext);
|
|
};
|
|
}
|