From 62e7b944296e3ac012db42c4730e06a517cdc378 Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 9 Dec 2025 16:34:15 +0800 Subject: [PATCH 1/3] feat: include extra tools in help message --- src/index.ts | 15 ++++++++++++--- test/help.test.ts | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 test/help.test.ts diff --git a/src/index.ts b/src/index.ts index 60ca632..2e806fb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -99,7 +99,16 @@ export type Argv = { export const BUILTIN_TOOLS = ['eslint', 'prettier', 'biome']; -function logHelpMessage(name: string, templates: string[]) { +function logHelpMessage( + name: string, + templates: string[], + extraTools?: ExtraTool[], +) { + const extraToolNames = extraTools?.map((tool) => tool.value) ?? []; + const toolsList = ['biome', 'eslint', 'prettier', ...extraToolNames].join( + ', ', + ); + logger.log(` Usage: create-${name} [dir] [options] @@ -108,7 +117,7 @@ function logHelpMessage(name: string, templates: string[]) { -h, --help display help for command -d, --dir create project in specified directory -t, --template specify the template to use - --tools select additional tools (biome, eslint, prettier) + --tools select additional tools (${toolsList}) --override override files in target directory --packageName specify the package name @@ -270,7 +279,7 @@ export async function create({ const argv = parseArgv(processArgv); if (argv.help) { - logHelpMessage(name, templates); + logHelpMessage(name, templates, extraTools); return; } diff --git a/test/help.test.ts b/test/help.test.ts new file mode 100644 index 0000000..86b7a6e --- /dev/null +++ b/test/help.test.ts @@ -0,0 +1,34 @@ +import { expect, test } from '@rstest/core'; +import { logger } from 'rslog'; +import { create } from '../src'; + +test('help message includes extra tools', async () => { + const logs: string[] = []; + const originalLog = logger.log; + + logger.override({ + log: (message?: unknown) => { + logs.push(String(message ?? '')); + }, + }); + + try { + await create({ + name: 'test', + root: '.', + templates: ['vanilla'], + getTemplateName: async () => 'vanilla', + extraTools: [{ value: 'custom-tool', label: 'Custom Tool' }], + argv: ['node', 'test', '--help'], + }); + } finally { + logger.override({ + log: originalLog, + }); + } + + const logOutput = logs.join('\n'); + expect(logOutput).toContain( + '--tools select additional tools (biome, eslint, prettier, custom-tool)', + ); +}); From cc9e09f56965d1c98bcfe5e7bf9adee511c1ff04 Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 9 Dec 2025 16:37:55 +0800 Subject: [PATCH 2/3] Update src/index.ts Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 2e806fb..901ec57 100644 --- a/src/index.ts +++ b/src/index.ts @@ -105,7 +105,7 @@ function logHelpMessage( extraTools?: ExtraTool[], ) { const extraToolNames = extraTools?.map((tool) => tool.value) ?? []; - const toolsList = ['biome', 'eslint', 'prettier', ...extraToolNames].join( + const toolsList = [...BUILTIN_TOOLS, ...extraToolNames].join( ', ', ); From daeb68059ea53c29b26e1b1487e5eb6fc0d00c05 Mon Sep 17 00:00:00 2001 From: neverland Date: Tue, 9 Dec 2025 16:40:02 +0800 Subject: [PATCH 3/3] fix --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 901ec57..6a0ff65 100644 --- a/src/index.ts +++ b/src/index.ts @@ -97,7 +97,7 @@ export type Argv = { 'package-name'?: string; }; -export const BUILTIN_TOOLS = ['eslint', 'prettier', 'biome']; +export const BUILTIN_TOOLS = ['biome', 'eslint', 'prettier']; function logHelpMessage( name: string,