diff --git a/actions/generate.action.ts b/actions/generate.action.ts index 490ca3333..926d5eaab 100644 --- a/actions/generate.action.ts +++ b/actions/generate.action.ts @@ -121,10 +121,7 @@ const mapSchematicOptions = (inputs: Input[]): SchematicOption[] => { const options: SchematicOption[] = []; inputs.forEach((input) => { if (!excludedInputNames.includes(input.name) && input.value !== undefined) { - const keepInputName = input.options - ? 'keepInputNameFormat' in input.options - : false; - options.push(new SchematicOption(input.name, input.value, keepInputName)); + options.push(new SchematicOption(input.name, input.value)); } }); return options; diff --git a/commands/generate.command.ts b/commands/generate.command.ts index be4c2792f..d4f350849 100644 --- a/commands/generate.command.ts +++ b/commands/generate.command.ts @@ -81,9 +81,6 @@ export class GenerateCommand extends AbstractCommand { options.push({ name: 'skipImport', value: command.skipImport, - options: { - keepInputNameFormat: true, - }, }); const inputs: Input[] = []; diff --git a/lib/schematics/schematic.option.ts b/lib/schematics/schematic.option.ts index b0fcc6768..b0bb4bf85 100644 --- a/lib/schematics/schematic.option.ts +++ b/lib/schematics/schematic.option.ts @@ -1,28 +1,26 @@ import { normalizeToKebabOrSnakeCase } from '../utils/formatting'; export class SchematicOption { - constructor( - private name: string, - private value: boolean | string, - private keepInputNameFormat: boolean = false, - ) {} + constructor(private name: string, private value: boolean | string) {} + + get normalizedName() { + return normalizeToKebabOrSnakeCase(this.name); + } public toCommandString(): string { if (typeof this.value === 'string') { if (this.name === 'name') { - return `--${this.name}=${this.format()}`; + return `--${this.normalizedName}=${this.format()}`; } else if (this.name === 'version' || this.name === 'path') { - return `--${this.name}=${this.value}`; + return `--${this.normalizedName}=${this.value}`; } else { - return `--${this.name}="${this.value}"`; + return `--${this.normalizedName}="${this.value}"`; } } else if (typeof this.value === 'boolean') { - const str = this.keepInputNameFormat - ? this.name - : normalizeToKebabOrSnakeCase(this.name); + const str = this.normalizedName; return this.value ? `--${str}` : `--no-${str}`; } else { - return `--${normalizeToKebabOrSnakeCase(this.name)}=${this.value}`; + return `--${this.normalizedName}=${this.value}`; } } diff --git a/package-lock.json b/package-lock.json index 51dbb8727..affd8f4e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,9 @@ "version": "8.2.8", "license": "MIT", "dependencies": { - "@angular-devkit/core": "13.3.6", - "@angular-devkit/schematics": "13.3.6", - "@angular-devkit/schematics-cli": "13.3.6", + "@angular-devkit/core": "14.0.2", + "@angular-devkit/schematics": "14.0.2", + "@angular-devkit/schematics-cli": "14.0.2", "@nestjs/schematics": "^8.0.3", "chalk": "3.0.0", "chokidar": "3.5.3", @@ -58,7 +58,7 @@ "gulp-clean": "0.4.0", "husky": "8.0.1", "jest": "28.1.1", - "lint-staged": "^13.0.2", + "lint-staged": "13.0.2", "prettier": "2.7.1", "release-it": "15.1.0", "ts-jest": "28.0.5", @@ -84,19 +84,18 @@ } }, "node_modules/@angular-devkit/core": { - "version": "13.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.6.tgz", - "integrity": "sha512-ZmD586B+RnM2CG5+jbXh2NVfIydTc/yKSjppYDDOv4I530YBm6vpfZMwClpiNk6XLbMv7KqX4Tlr4wfxlPYYbA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.2.tgz", + "integrity": "sha512-lT875LhgO+23HvjUmuCZomH/0ivetzo8xsaT+7YM8SeUpmjsNTpTA/xNAQ4uD4JGscsJeCKsGT/zJIwPAAe6vQ==", "dependencies": { - "ajv": "8.9.0", + "ajv": "8.11.0", "ajv-formats": "2.1.1", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", + "jsonc-parser": "3.0.0", "rxjs": "6.6.7", "source-map": "0.7.3" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, @@ -110,9 +109,9 @@ } }, "node_modules/@angular-devkit/core/node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -138,39 +137,39 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "13.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.6.tgz", - "integrity": "sha512-yLh5xc92C/FiaAp27coPiKWpSUmwoXF7vMxbJYJTyOXlt0mUITAEAwtrZQNr4yAxW/yvgTdyg7PhXaveQNTUuQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.2.tgz", + "integrity": "sha512-NCAYwvQBL71MbAzeF8XOM9LXYfZbUK7THYCW8UteKDY4Df6EdVOGhBdWY2LstAkZeVCaQWSJU7FcVRS9Ulvg0A==", "dependencies": { - "@angular-devkit/core": "13.3.6", + "@angular-devkit/core": "14.0.2", "jsonc-parser": "3.0.0", - "magic-string": "0.25.7", + "magic-string": "0.26.1", "ora": "5.4.1", "rxjs": "6.6.7" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/schematics-cli": { - "version": "13.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.3.6.tgz", - "integrity": "sha512-5tTuu9gbXM0bMk0sin4phmWA3U1Qz53zT/rpEfzQ/+c/s8CoqZ5N1qOnYtemRct3Jxsz1kn4TBpHeriR4r5hHg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.0.2.tgz", + "integrity": "sha512-baqwuiN56mPFVVhthZHwvltjPNrczijM6Hvk9wYqlNeYuawqDD8h57u3PMGzgr9SKLHyCoFNwMQ0B57FN7oXtA==", "dependencies": { - "@angular-devkit/core": "13.3.6", - "@angular-devkit/schematics": "13.3.6", + "@angular-devkit/core": "14.0.2", + "@angular-devkit/schematics": "14.0.2", "ansi-colors": "4.1.1", - "inquirer": "8.2.0", - "minimist": "1.2.6", - "symbol-observable": "4.0.0" + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.0.1" }, "bin": { "schematics": "bin/schematics.js" }, "engines": { - "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "node": "^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } @@ -221,9 +220,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/@angular-devkit/schematics-cli/node_modules/inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -235,13 +234,14 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" } }, "node_modules/@angular-devkit/schematics-cli/node_modules/rxjs": { @@ -257,6 +257,41 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, + "node_modules/@angular-devkit/schematics-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@angular-devkit/schematics-cli/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/magic-string": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", + "integrity": "sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@babel/code-frame": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", @@ -13894,7 +13929,8 @@ "node_modules/minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, "node_modules/minimist-options": { "version": "4.1.0", @@ -19202,22 +19238,21 @@ } }, "@angular-devkit/core": { - "version": "13.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.6.tgz", - "integrity": "sha512-ZmD586B+RnM2CG5+jbXh2NVfIydTc/yKSjppYDDOv4I530YBm6vpfZMwClpiNk6XLbMv7KqX4Tlr4wfxlPYYbA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.2.tgz", + "integrity": "sha512-lT875LhgO+23HvjUmuCZomH/0ivetzo8xsaT+7YM8SeUpmjsNTpTA/xNAQ4uD4JGscsJeCKsGT/zJIwPAAe6vQ==", "requires": { - "ajv": "8.9.0", + "ajv": "8.11.0", "ajv-formats": "2.1.1", - "fast-json-stable-stringify": "2.1.0", - "magic-string": "0.25.7", + "jsonc-parser": "3.0.0", "rxjs": "6.6.7", "source-map": "0.7.3" }, "dependencies": { "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -19238,28 +19273,38 @@ } }, "@angular-devkit/schematics": { - "version": "13.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.6.tgz", - "integrity": "sha512-yLh5xc92C/FiaAp27coPiKWpSUmwoXF7vMxbJYJTyOXlt0mUITAEAwtrZQNr4yAxW/yvgTdyg7PhXaveQNTUuQ==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.2.tgz", + "integrity": "sha512-NCAYwvQBL71MbAzeF8XOM9LXYfZbUK7THYCW8UteKDY4Df6EdVOGhBdWY2LstAkZeVCaQWSJU7FcVRS9Ulvg0A==", "requires": { - "@angular-devkit/core": "13.3.6", + "@angular-devkit/core": "14.0.2", "jsonc-parser": "3.0.0", - "magic-string": "0.25.7", + "magic-string": "0.26.1", "ora": "5.4.1", "rxjs": "6.6.7" + }, + "dependencies": { + "magic-string": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", + "integrity": "sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + } } }, "@angular-devkit/schematics-cli": { - "version": "13.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.3.6.tgz", - "integrity": "sha512-5tTuu9gbXM0bMk0sin4phmWA3U1Qz53zT/rpEfzQ/+c/s8CoqZ5N1qOnYtemRct3Jxsz1kn4TBpHeriR4r5hHg==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-14.0.2.tgz", + "integrity": "sha512-baqwuiN56mPFVVhthZHwvltjPNrczijM6Hvk9wYqlNeYuawqDD8h57u3PMGzgr9SKLHyCoFNwMQ0B57FN7oXtA==", "requires": { - "@angular-devkit/core": "13.3.6", - "@angular-devkit/schematics": "13.3.6", + "@angular-devkit/core": "14.0.2", + "@angular-devkit/schematics": "14.0.2", "ansi-colors": "4.1.1", - "inquirer": "8.2.0", - "minimist": "1.2.6", - "symbol-observable": "4.0.0" + "inquirer": "8.2.4", + "symbol-observable": "4.0.0", + "yargs-parser": "21.0.1" }, "dependencies": { "ansi-styles": { @@ -19293,9 +19338,9 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", @@ -19307,10 +19352,11 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" } }, "rxjs": { @@ -19325,6 +19371,21 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" } } }, @@ -29677,7 +29738,8 @@ "minimist": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true }, "minimist-options": { "version": "4.1.0", diff --git a/package.json b/package.json index 4565757f6..7e97ffb30 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,9 @@ }, "homepage": "https://github.com/nestjs/nest-cli#readme", "dependencies": { - "@angular-devkit/core": "13.3.6", - "@angular-devkit/schematics": "13.3.6", - "@angular-devkit/schematics-cli": "13.3.6", + "@angular-devkit/core": "14.0.2", + "@angular-devkit/schematics": "14.0.2", + "@angular-devkit/schematics-cli": "14.0.2", "@nestjs/schematics": "^8.0.3", "chalk": "3.0.0", "chokidar": "3.5.3",