UNPKG

@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
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=