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)',
+ );
+});