Files
SubMiner/launcher/commands/dictionary-command.ts

45 lines
1.2 KiB
TypeScript

import { runAppCommandWithInherit } from '../mpv.js';
import type { LauncherCommandContext } from './context.js';
interface DictionaryCommandDeps {
runAppCommandWithInherit: (appPath: string, appArgs: string[]) => void;
}
const defaultDeps: DictionaryCommandDeps = {
runAppCommandWithInherit,
};
export function runDictionaryCommand(
context: LauncherCommandContext,
deps: DictionaryCommandDeps = defaultDeps,
): boolean {
const { args, appPath } = context;
if (!args.dictionary || !appPath) {
return false;
}
const forwarded = [
'--start',
args.dictionaryCandidates
? '--dictionary-candidates'
: args.dictionarySelect
? '--dictionary-select'
: '--dictionary',
];
if (args.dictionarySelect) {
if (!args.dictionaryAnilistId) {
throw new Error('Dictionary selection requires an AniList media ID.');
}
forwarded.push('--dictionary-anilist-id', String(args.dictionaryAnilistId));
}
if (typeof args.dictionaryTarget === 'string' && args.dictionaryTarget.trim()) {
forwarded.push('--dictionary-target', args.dictionaryTarget);
}
if (args.logLevel !== 'info') {
forwarded.push('--log-level', args.logLevel);
}
deps.runAppCommandWithInherit(appPath, forwarded);
return true;
}