From 007bff63ca96b8399747d852a50271514d1d6004 Mon Sep 17 00:00:00 2001 From: Jan Michael Vincent Trinidad Date: Wed, 11 Oct 2023 10:36:26 +0400 Subject: [PATCH] feat: add config for tsconfigPath --- packages/dts-loader/src/index.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/dts-loader/src/index.ts b/packages/dts-loader/src/index.ts index ceb93fe..cc07cdf 100644 --- a/packages/dts-loader/src/index.ts +++ b/packages/dts-loader/src/index.ts @@ -11,15 +11,15 @@ const cache: { fileNameMapping: Record } = { fileNameMapping: {} } -function getTSConfigPath(cwd: string) { - const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, 'tsconfig.json') +function getTSConfigPath({ cwd, tsConfigFilename }: { cwd: string, tsConfigFilename: string }) { + const configPath = ts.findConfigFile(cwd, ts.sys.fileExists, tsConfigFilename) return configPath } -function getTSConfig(cwd: string): ts.CompilerOptions { - const tsconfigPath = getTSConfigPath(cwd) +function getTSConfig({ cwd, tsConfigFilename }: { cwd: string, tsConfigFilename: string }): ts.CompilerOptions { + const tsconfigPath = getTSConfigPath({ cwd, tsConfigFilename }) if (!tsconfigPath) { - throw new Error("Could not find a valid 'tsconfig.json'.") + throw new Error(`Could not find a valid ${tsconfigPath}: '${tsConfigFilename}'.`) } const tsconfig = require(tsconfigPath) @@ -162,6 +162,7 @@ interface LoaderOptions { name?: string exposes?: Record typesOutputDir: string + tsConfigFilename: string } function hash(content: string) { @@ -185,7 +186,7 @@ function makeLoader( files[fileName].version++; } - const tsconfig = getTSConfig(context.rootContext) + const tsconfig = getTSConfig({ cwd: context.rootContext, tsConfigFilename: loaderOptions.tsConfigFilename}) const languageService = getTSService({ ...tsconfig, declaration: true, @@ -212,6 +213,7 @@ export default function loader(content: string) { name: loaderOptions.name, exposes: loaderOptions.exposes, typesOutputDir: loaderOptions.typesOutputDir || '.wp_federation', + tsConfigFilename: loaderOptions.tsConfigFilename || 'tsconfig.json', }, content )