From df7bfecf56097d25bda3b8056f2af906fd52aca5 Mon Sep 17 00:00:00 2001 From: Tom Mrazauskas Date: Sat, 23 Apr 2022 12:37:56 +0300 Subject: [PATCH] chore: do not bundle type definitions for packages which have only one `.d.ts` file (#12718) --- scripts/bundleTs.mjs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/bundleTs.mjs b/scripts/bundleTs.mjs index 4cac2d4a4b08..7d87a062e8cd 100644 --- a/scripts/bundleTs.mjs +++ b/scripts/bundleTs.mjs @@ -39,8 +39,16 @@ const copyrightSnippet = ` (async () => { const packages = getPackages(); - const packagesWithTs = packages.filter(p => - fs.existsSync(path.resolve(p.packageDir, 'tsconfig.json')), + const isTsPackage = p => + fs.existsSync(path.resolve(p.packageDir, 'tsconfig.json')); + + const hasMoreThanOneDefinitionFile = p => + fs + .readdirSync(path.resolve(p.packageDir, 'build')) + .filter(f => f.endsWith('.d.ts')).length > 1; + + const packagesToBundle = packages.filter( + p => isTsPackage(p) && hasMoreThanOneDefinitionFile(p), ); const typesNodeReferenceDirective = '/// '; @@ -115,7 +123,7 @@ const copyrightSnippet = ` let compilerState; await Promise.all( - packagesWithTs.map(async ({packageDir, pkg}) => { + packagesToBundle.map(async ({packageDir, pkg}) => { const configFile = path.resolve(packageDir, 'api-extractor.json'); await fs.promises.writeFile( @@ -134,7 +142,7 @@ const copyrightSnippet = ` if (!compilerState) { compilerState = CompilerState.create(extractorConfig, { - additionalEntryPoints: packagesWithTs.map(({pkg, packageDir}) => + additionalEntryPoints: packagesToBundle.map(({pkg, packageDir}) => path.resolve(packageDir, pkg.types), ), typescriptCompilerFolder,