@qodalis/angular-cli
Version:
A lightweight and flexible command-line interface (CLI) tool designed to streamline workflows and automate tasks for developers.
43 lines • 6.19 kB
JavaScript
export class CliArgsParser {
static convertToRecord(args, processor) {
const result = {};
const updateParamValue = (parameter, value) => {
result[parameter.name] = value;
parameter.aliases?.forEach((alias) => {
result[alias] = value;
});
};
args.forEach((arg) => {
const parameter = processor.parameters?.find((p) => p.name === arg.name ||
p.aliases?.some((a) => a === arg.name));
if (parameter) {
let value = arg.value;
switch (parameter.type) {
case 'array':
const previousValue = Array.isArray(result[arg.name])
? result[arg.name]
: [];
value = [...previousValue, arg.value];
break;
case 'boolean':
value =
value === 'true' ||
value === '1' ||
value === 'yes' ||
value === 'y' ||
value === 1;
break;
default:
value = arg.value;
break;
}
updateParamValue(parameter, value);
}
else {
result[arg.name] = arg.value;
}
});
return result;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJncy1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGkvc3JjL2xpYi91dGlscy9hcmdzLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLE9BQU8sYUFBYTtJQUNmLE1BQU0sQ0FBQyxlQUFlLENBQ3pCLElBQWlCLEVBQ2pCLFNBQStCO1FBRS9CLE1BQU0sTUFBTSxHQUF3QixFQUFFLENBQUM7UUFFdkMsTUFBTSxnQkFBZ0IsR0FBRyxDQUNyQixTQUF5QyxFQUN6QyxLQUFVLEVBQ1osRUFBRTtZQUNBLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQy9CLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDakIsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQ3hDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDRixDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJO2dCQUNuQixDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FDN0MsQ0FBQztZQUVGLElBQUksU0FBUyxFQUFFO2dCQUNYLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBRXRCLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRTtvQkFDcEIsS0FBSyxPQUFPO3dCQUNSLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDakQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDOzRCQUNsQixDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNULEtBQUssR0FBRyxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDdEMsTUFBTTtvQkFDVixLQUFLLFNBQVM7d0JBQ1YsS0FBSzs0QkFDRCxLQUFLLEtBQUssTUFBTTtnQ0FDaEIsS0FBSyxLQUFLLEdBQUc7Z0NBQ2IsS0FBSyxLQUFLLEtBQUs7Z0NBQ2YsS0FBSyxLQUFLLEdBQUc7Z0NBQ2IsS0FBSyxLQUFLLENBQUMsQ0FBQzt3QkFDaEIsTUFBTTtvQkFDVjt3QkFDSSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQzt3QkFDbEIsTUFBTTtpQkFDYjtnQkFDRCxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ2hDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIElDbGlDb21tYW5kUHJvY2Vzc29yLFxuICAgIElDbGlDb21tYW5kUGFyYW1ldGVyRGVzY3JpcHRvcixcbn0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IHsgUGFyc2VkQXJnIH0gZnJvbSAnLi9jb21tYW5kLXBhcnNlcic7XG5cbmV4cG9ydCBjbGFzcyBDbGlBcmdzUGFyc2VyIHtcbiAgICBwdWJsaWMgc3RhdGljIGNvbnZlcnRUb1JlY29yZChcbiAgICAgICAgYXJnczogUGFyc2VkQXJnW10sXG4gICAgICAgIHByb2Nlc3NvcjogSUNsaUNvbW1hbmRQcm9jZXNzb3IsXG4gICAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gICAgICAgIGNvbnN0IHVwZGF0ZVBhcmFtVmFsdWUgPSAoXG4gICAgICAgICAgICBwYXJhbWV0ZXI6IElDbGlDb21tYW5kUGFyYW1ldGVyRGVzY3JpcHRvcixcbiAgICAgICAgICAgIHZhbHVlOiBhbnksXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0W3BhcmFtZXRlci5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgcGFyYW1ldGVyLmFsaWFzZXM/LmZvckVhY2goKGFsaWFzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2FsaWFzXSA9IHZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgYXJncy5mb3JFYWNoKChhcmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtZXRlciA9IHByb2Nlc3Nvci5wYXJhbWV0ZXJzPy5maW5kKFxuICAgICAgICAgICAgICAgIChwKSA9PlxuICAgICAgICAgICAgICAgICAgICBwLm5hbWUgPT09IGFyZy5uYW1lIHx8XG4gICAgICAgICAgICAgICAgICAgIHAuYWxpYXNlcz8uc29tZSgoYSkgPT4gYSA9PT0gYXJnLm5hbWUpLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKHBhcmFtZXRlcikge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGFyZy52YWx1ZTtcblxuICAgICAgICAgICAgICAgIHN3aXRjaCAocGFyYW1ldGVyLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IEFycmF5LmlzQXJyYXkocmVzdWx0W2FyZy5uYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJlc3VsdFthcmcubmFtZV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBbLi4ucHJldmlvdXNWYWx1ZSwgYXJnLnZhbHVlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ3RydWUnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICcxJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAneWVzJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAneScgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBhcmcudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdXBkYXRlUGFyYW1WYWx1ZShwYXJhbWV0ZXIsIHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2FyZy5uYW1lXSA9IGFyZy52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=