From a3f12e02ea22cad7ea4cb8bfca6f5dbd61a75400 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20My=C5=9Bliwiec?= Date: Mon, 15 Jul 2019 11:02:15 +0200 Subject: [PATCH] chore(): publish 6.6.0 release --- actions/add.action.ts | 35 +++++++++++++++++-- actions/update.action.ts | 13 +++---- .../nest.dependency-manager.ts | 7 ++-- lib/schematics/collection.factory.ts | 2 +- package.json | 2 +- 5 files changed, 40 insertions(+), 19 deletions(-) diff --git a/actions/add.action.ts b/actions/add.action.ts index e7fb81f19..7424bcc57 100644 --- a/actions/add.action.ts +++ b/actions/add.action.ts @@ -3,6 +3,11 @@ import { AbstractPackageManager, PackageManagerFactory, } from '../lib/package-managers'; +import { + AbstractCollection, + CollectionFactory, + SchematicOption, +} from '../lib/schematics'; import { AbstractAction } from './abstract.action'; export class AddAction extends AbstractAction { @@ -11,9 +16,33 @@ export class AddAction extends AbstractAction { const libraryInput: Input = inputs.find( input => input.name === 'library', ) as Input; - if (libraryInput) { - const library: string = libraryInput.value as string; - await manager.addProduction([library], 'latest'); + + if (!libraryInput) { + return; + } + const library: string = libraryInput.value as string; + await manager.addProduction([library], 'latest'); + + const packageName = library.startsWith('@') + ? library.split('/', 2).join('/') + : library.split('/', 1)[0]; + + // Remove the tag/version from the package name. + const collectionName = + (packageName.startsWith('@') + ? packageName.split('@', 2).join('@') + : packageName.split('@', 1).join('@')) + + library.slice(packageName.length); + + const schematicName = 'nest-add'; + try { + const collection: AbstractCollection = CollectionFactory.create( + collectionName, + ); + const schematicOptions: SchematicOption[] = []; + await collection.execute(schematicName, schematicOptions); + } catch (e) { + return; } } } diff --git a/actions/update.action.ts b/actions/update.action.ts index 9e376a806..5e75dcdb9 100644 --- a/actions/update.action.ts +++ b/actions/update.action.ts @@ -1,4 +1,3 @@ -import chalk from 'chalk'; import { Input } from '../commands'; import { NestDependencyManager } from '../lib/dependency-managers'; import { PackageManagerFactory } from '../lib/package-managers'; @@ -9,13 +8,9 @@ export class UpdateAction extends AbstractAction { const force = options.find(option => option.name === 'force') as Input; const tag = options.find(option => option.name === 'tag') as Input; - if (force.value && tag.value === undefined) { - console.error(chalk.red('You should specify a tag (e.g. latest) on force update.')); - } else { - const manager = new NestDependencyManager( - await PackageManagerFactory.find(), - ); - await manager.update(force.value as boolean, tag.value as string); - } + const manager = new NestDependencyManager( + await PackageManagerFactory.find(), + ); + await manager.update(force.value as boolean, tag.value as string); } } diff --git a/lib/dependency-managers/nest.dependency-manager.ts b/lib/dependency-managers/nest.dependency-manager.ts index a53a9aacc..f2d6411d1 100644 --- a/lib/dependency-managers/nest.dependency-manager.ts +++ b/lib/dependency-managers/nest.dependency-manager.ts @@ -12,7 +12,7 @@ export class NestDependencyManager { .map(dependency => dependency.name); } - public async update(force: boolean, tag: string) { + public async update(force: boolean, tag: string = 'latest') { const spinner = ora({ spinner: { interval: 120, @@ -23,10 +23,7 @@ export class NestDependencyManager { spinner.start(); const dependencies: string[] = await this.read(); if (force) { - await this.packageManager.upgradeProduction( - dependencies, - tag !== undefined ? tag : 'latest', - ); + await this.packageManager.upgradeProduction(dependencies, tag); } else { await this.packageManager.updateProduction(dependencies); } diff --git a/lib/schematics/collection.factory.ts b/lib/schematics/collection.factory.ts index a526ce64f..df985a693 100644 --- a/lib/schematics/collection.factory.ts +++ b/lib/schematics/collection.factory.ts @@ -6,7 +6,7 @@ import { CustomCollection } from './custom.collection'; import { NestCollection } from './nest.collection'; export class CollectionFactory { - public static create(collection: Collection): AbstractCollection { + public static create(collection: Collection | string): AbstractCollection { switch (collection) { case Collection.NESTJS: return new NestCollection(RunnerFactory.create( diff --git a/package.json b/package.json index 6a77b9f45..8720e9144 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@nestjs/cli", - "version": "6.5.0", + "version": "6.6.0", "description": "Nest - modern, fast, powerful node.js web framework (@cli)", "publishConfig": { "access": "public"