From 76b282ed0dfe8e49b29a7db6a1e621d8839324fb Mon Sep 17 00:00:00 2001 From: z3brahax Date: Mon, 17 Oct 2022 18:41:36 -0400 Subject: [PATCH] feat: allows skip-install for add --- actions/add.action.ts | 4 +++- commands/add.command.ts | 2 ++ lib/utils/project-utils.ts | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/actions/add.action.ts b/actions/add.action.ts index f91e23f08..df906a32c 100644 --- a/actions/add.action.ts +++ b/actions/add.action.ts @@ -14,6 +14,7 @@ import { MESSAGES } from '../lib/ui'; import { loadConfiguration } from '../lib/utils/load-configuration'; import { askForProjectName, + hasValidOptionFlag, moveDefaultProjectToStart, shouldAskForProject } from '../lib/utils/project-utils'; @@ -27,7 +28,8 @@ export class AddAction extends AbstractAction { const packageName = this.getPackageName(libraryName); const collectionName = this.getCollectionName(libraryName, packageName); const tagName = this.getTagName(packageName); - const packageInstallSuccess = await this.installPackage( + const skipInstall = hasValidOptionFlag('skip-install', options); + const packageInstallSuccess = skipInstall || await this.installPackage( collectionName, tagName, ); diff --git a/commands/add.command.ts b/commands/add.command.ts index ad7c6b7d9..a2006dbef 100644 --- a/commands/add.command.ts +++ b/commands/add.command.ts @@ -13,11 +13,13 @@ export class AddCommand extends AbstractCommand { '-d, --dry-run', 'Report actions that would be performed without writing out results.', ) + .option('-s, --skip-install', 'Skip package installation.', false) .option('-p, --project [project]', 'Project in which to generate files.') .usage(' [options] [library-specific-options]') .action(async (library: string, command: Command) => { const options: Input[] = []; options.push({ name: 'dry-run', value: !!command.dryRun }); + options.push({ name: 'skip-install', value: command.skipInstall }); options.push({ name: 'project', value: command.project, diff --git a/lib/utils/project-utils.ts b/lib/utils/project-utils.ts index e28ab972a..0bd91bbeb 100644 --- a/lib/utils/project-utils.ts +++ b/lib/utils/project-utils.ts @@ -1,5 +1,6 @@ import * as inquirer from 'inquirer'; import { Answers, Question } from 'inquirer'; +import { Input } from '../../commands'; import { getValueOrDefault } from '../compiler/helpers/get-value-or-default'; import { Configuration, ProjectConfiguration } from '../configuration'; import { generateSelect } from '../questions/questions'; @@ -93,3 +94,9 @@ export function moveDefaultProjectToStart( projects.unshift(defaultProjectName); return projects; } + +export function hasValidOptionFlag(queriedOptionName: string, options: Input[], queriedValue: string|number|boolean = true): boolean { + return options.some( + (option: Input) => option.name === queriedOptionName && option.value === queriedValue + ); +} \ No newline at end of file