From f2f7076d142af0650c3a81a6fa3f03b85e6e48d1 Mon Sep 17 00:00:00 2001 From: Bert De Block Date: Sun, 29 Mar 2026 17:38:01 +0200 Subject: [PATCH 1/2] Parallelize some work for better performance --- src/generators/generator.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/generators/generator.ts b/src/generators/generator.ts index bdf1ce1..17bce76 100644 --- a/src/generators/generator.ts +++ b/src/generators/generator.ts @@ -91,8 +91,12 @@ export function defineGenerator({ async function run(args: Args): Promise { const packagePath = args.cwd ?? env.GEMBER_CWD ?? processCwd(); - const packageJson = await readPackageJson(packagePath); - const config = await resolveConfig(packagePath); + + const [packageJson, config] = await Promise.all([ + readPackageJson(packagePath), + resolveConfig(packagePath), + ]); + const resolvedArgs = resolveArgs( config, generatorName, @@ -169,11 +173,14 @@ export function defineGenerator({ signature: entityNameCases.pascal + "Signature", }, package: packageJson, - testHelpersImportPath: - (await pathExists(join(packagePath, "tests", "helpers.js"))) || - (await pathExists(join(packagePath, "tests", "helpers.ts"))) - ? `${packageJson.name}/tests/helpers` - : "ember-qunit", + testHelpersImportPath: ( + await Promise.all([ + pathExists(join(packagePath, "tests", "helpers.js")), + pathExists(join(packagePath, "tests", "helpers.ts")), + ]) + ).some(Boolean) + ? `${packageJson.name}/tests/helpers` + : "ember-qunit", }); if (resolvedArgs.copy) { From 96bbd90db13fee2e3989f66c1a1408ba3543b3f1 Mon Sep 17 00:00:00 2001 From: Bert De Block Date: Sun, 29 Mar 2026 18:14:07 +0200 Subject: [PATCH 2/2] Lazy import clipboard package --- src/generators/generator.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/generators/generator.ts b/src/generators/generator.ts index 17bce76..508785d 100644 --- a/src/generators/generator.ts +++ b/src/generators/generator.ts @@ -1,4 +1,3 @@ -import { Clipboard } from "@napi-rs/clipboard"; import { camelCase, kebabCase, pascalCase } from "change-case"; import { outputFile, pathExists, remove } from "fs-extra/esm"; import Handlebars from "handlebars"; @@ -184,6 +183,8 @@ export function defineGenerator({ }); if (resolvedArgs.copy) { + const { Clipboard } = await import("@napi-rs/clipboard"); + const clipboard = new Clipboard(); clipboard.setText(templateCompiled);