From d791e21bf46d1bfcbcf1bbf2f1a507a95e6a6df0 Mon Sep 17 00:00:00 2001 From: Pauline Date: Mon, 16 Sep 2024 07:25:34 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pauline --- packages/eslint-config/src/utils.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/eslint-config/src/utils.ts b/packages/eslint-config/src/utils.ts index 953090b..5da9cb1 100644 --- a/packages/eslint-config/src/utils.ts +++ b/packages/eslint-config/src/utils.ts @@ -177,21 +177,20 @@ export const isPackageInScope = (name: string): boolean => isPackageExists(name, * const chalk = interopDefault(import('chalk')); // ensures that the package is installed. add as devDependency for types * ``` */ -export async function ensurePackages(packages: string[]): Promise { +export async function ensurePackages(packages: (string | undefined)[]): Promise { if (process.env.CI || process.stdout.isTTY === false || isCwdInScope === false) return; - const packageExists = (i: string) => !isPackageInScope(i); - const nonExistingPackages = packages.filter(packageExists); + const nonExistingPackages = packages.filter(i => i && !isPackageInScope(i)) as string[]; if (nonExistingPackages.length === 0) return; - const message = `${nonExistingPackages.length === 1 ? 'Package is' : 'Packages are'} required for this config: ${nonExistingPackages.join(', ')}. Do you want to install them?`; - const installMissing = async () => await import('@antfu/install-pkg').then(i => i.installPackage(nonExistingPackages, { dev: true })); - - if (await (await import('@clack/prompts')).confirm({ message })) - installMissing(); + const result = await (await import('@clack/prompts')).confirm({ + message: `${nonExistingPackages.length === 1 ? 'Package is' : 'Packages are'} required for this config: ${nonExistingPackages.join(', ')}. Do you want to install them?`, + }); + if (result) + await import('@antfu/install-pkg').then(i => i.installPackage(nonExistingPackages, { dev: true })); } export type ResolveOptions = T extends boolean ? never : NonNullable;