From e8527e55bea5f253e9506b5dd025d91343e890b3 Mon Sep 17 00:00:00 2001 From: twlite <46562212+twlite@users.noreply.github.com> Date: Sun, 19 Oct 2025 12:20:15 +0545 Subject: [PATCH 1/2] fix: handle known deno templates --- packages/create-commandkit/src/index.ts | 9 +++++---- packages/create-commandkit/src/utils.ts | 23 +++++++++++++++-------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/packages/create-commandkit/src/index.ts b/packages/create-commandkit/src/index.ts index c2a818cd..dafccbbb 100755 --- a/packages/create-commandkit/src/index.ts +++ b/packages/create-commandkit/src/index.ts @@ -132,9 +132,6 @@ Examples: process.exit(1); } - // Determine package manager - const manager = resolvePackageManager(cliOptions); - // Get Discord token let token: string; if (cliOptions.yes) { @@ -158,9 +155,13 @@ Examples: outro(colors.cyan('Setup complete.')); + const example = cliOptions.example || getDefaultExample(cliOptions); + + // Determine package manager + const manager = resolvePackageManager(cliOptions, example); + // Fetch example from GitHub try { - const example = cliOptions.example || getDefaultExample(cliOptions); await fetchExample({ example, examplePath: cliOptions.examplePath, diff --git a/packages/create-commandkit/src/utils.ts b/packages/create-commandkit/src/utils.ts index f897cb47..6b9a0939 100644 --- a/packages/create-commandkit/src/utils.ts +++ b/packages/create-commandkit/src/utils.ts @@ -34,15 +34,18 @@ export function getPackageManagerFromCLI(options: { return null; } -export function resolvePackageManager(cliOptions: { - useNpm?: boolean; - usePnpm?: boolean; - useYarn?: boolean; - useBun?: boolean; - useDeno?: boolean; -}): PackageManager { +export function resolvePackageManager( + cliOptions: { + useNpm?: boolean; + usePnpm?: boolean; + useYarn?: boolean; + useBun?: boolean; + useDeno?: boolean; + }, + name: string, +): PackageManager { const cliManager = getPackageManagerFromCLI(cliOptions); - return cliManager || detectPackageManager(); + return cliManager || (isDenoProject(name) ? 'deno' : detectPackageManager()); } export function getDefaultExample(cliOptions: CLIOptions): string { @@ -139,3 +142,7 @@ export async function fetchAvailableExamples(): Promise { return ['basic-ts', 'basic-js', 'deno-ts', 'without-cli']; } } + +export function isDenoProject(example: string): boolean { + return example.startsWith('deno-') || example.startsWith('with-deno-'); +} From f25b4fa5d6cd1ee9c96b943929a9ca45ac1d7ce7 Mon Sep 17 00:00:00 2001 From: twlite <46562212+twlite@users.noreply.github.com> Date: Sun, 19 Oct 2025 12:21:56 +0545 Subject: [PATCH 2/2] fix: validate authenticity for deno examples --- packages/create-commandkit/src/utils.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/create-commandkit/src/utils.ts b/packages/create-commandkit/src/utils.ts index 6b9a0939..a28e0e81 100644 --- a/packages/create-commandkit/src/utils.ts +++ b/packages/create-commandkit/src/utils.ts @@ -144,5 +144,10 @@ export async function fetchAvailableExamples(): Promise { } export function isDenoProject(example: string): boolean { + const isOfficial = isOfficialExample(example); + // if it's not an official example, we can assume it's not a Deno project + // the user may use --use-deno to force a Deno project + if (!isOfficial) return false; + return example.startsWith('deno-') || example.startsWith('with-deno-'); }