diff --git a/src/index.ts b/src/index.ts index 60ca632..6a0ff65 100644 --- a/src/index.ts +++ b/src/index.ts @@ -97,9 +97,18 @@ export type Argv = { 'package-name'?: string; }; -export const BUILTIN_TOOLS = ['eslint', 'prettier', 'biome']; +export const BUILTIN_TOOLS = ['biome', 'eslint', 'prettier']; + +function logHelpMessage( + name: string, + templates: string[], + extraTools?: ExtraTool[], +) { + const extraToolNames = extraTools?.map((tool) => tool.value) ?? []; + const toolsList = [...BUILTIN_TOOLS, ...extraToolNames].join( + ', ', + ); -function logHelpMessage(name: string, templates: string[]) { 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)', + ); +});