echogarden
Version:
An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.
38 lines • 1.49 kB
JavaScript
export function parseCLIArguments(args) {
const parsedArgs = {
operationArgs: [],
parsedArgumentsLookup: new Map(),
};
for (let i = 0; i < args.length; i++) {
const currentArg = args[i];
const currentArgIsNewOption = currentArg.startsWith('-');
if (currentArgIsNewOption) {
if (!currentArg.startsWith('--')) {
throw new Error(`'${currentArg}' has a single dash prefix. You should use '-${currentArg}' instead.`);
}
const optionText = currentArg.substring(2);
const indexOfEqualSign = optionText.indexOf('=');
if (indexOfEqualSign == 0) {
throw new Error('An option cannot have an empty name.');
}
else if (indexOfEqualSign == -1) {
if (optionText.startsWith('no-')) {
parsedArgs.parsedArgumentsLookup.set(optionText.substring(3), 'false');
}
else {
parsedArgs.parsedArgumentsLookup.set(optionText, '');
}
}
else {
const key = optionText.substring(0, indexOfEqualSign);
const value = optionText.substring(indexOfEqualSign + 1);
parsedArgs.parsedArgumentsLookup.set(key, value);
}
}
else {
parsedArgs.operationArgs.push(currentArg);
}
}
return parsedArgs;
}
//# sourceMappingURL=CLIParser.js.map