From 63c635d8598f8f4f9a83204ba7f30c0e527a2b47 Mon Sep 17 00:00:00 2001 From: nayrbryanGaming Date: Mon, 23 Mar 2026 00:44:05 +0800 Subject: [PATCH] fix(cli): Map short option keys to category names in generate command --- package-lock.json | 8 +++++++- src/commands/generate.ts | 8 ++++++++ test/commands/generate.test.ts | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 test/commands/generate.test.ts diff --git a/package-lock.json b/package-lock.json index 4069d83..51dc515 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6129,6 +6129,7 @@ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz", "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -6286,6 +6287,7 @@ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.14.1.tgz", "integrity": "sha512-kiuZzD1uUA5DxGj/uxbde+ymp6VVdAxdzOIlAFbYKrPyla8/uiJ9JLBm1QsPhOm4Muj0/+cWEDP99yoCUcSl6Q==", "dev": true, + "peer": true, "dependencies": { "tslib": "^1.8.1" }, @@ -6351,6 +6353,7 @@ "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11470,6 +11473,7 @@ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz", "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -11587,6 +11591,7 @@ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.14.1.tgz", "integrity": "sha512-kiuZzD1uUA5DxGj/uxbde+ymp6VVdAxdzOIlAFbYKrPyla8/uiJ9JLBm1QsPhOm4Muj0/+cWEDP99yoCUcSl6Q==", "dev": true, + "peer": true, "requires": { "tslib": "^1.8.1" } @@ -11633,7 +11638,8 @@ "typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true }, "uglify-js": { "version": "3.6.9", diff --git a/src/commands/generate.ts b/src/commands/generate.ts index 3173317..2403e9d 100644 --- a/src/commands/generate.ts +++ b/src/commands/generate.ts @@ -33,6 +33,14 @@ export default class Generate extends Command { 'Slash Command Extension', 'Settings Extension', ]; + + if (option) { + const index = ['a', 'b', 'c'].indexOf(option); + if (index !== -1) { + option = categories[index]; + } + } + if (!option) { inquirer.registerPrompt('checkbox-plus', require('inquirer-checkbox-plus-prompt')); const result = await inquirer.prompt([{ diff --git a/test/commands/generate.test.ts b/test/commands/generate.test.ts new file mode 100644 index 0000000..cafae1f --- /dev/null +++ b/test/commands/generate.test.ts @@ -0,0 +1,15 @@ +import { test } from '@oclif/test'; + +describe('generate', () => { + test + .stdout() + .command(['generate', '-o', 'a']) + .exit(2) + .it('runs generate with option "a" and correctly attempts to find app.json'); + + test + .stdout() + .command(['generate', '-o', 'x']) + .exit(2) + .it('fails when passing an invalid option not in a,b,c'); +});