diff --git a/src/index.ts b/src/index.ts index 5bd92956..d6824c76 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,6 @@ import path from 'path' import fs from 'fs' import { Worker } from 'worker_threads' -import type { Buildable, MarkRequired } from 'ts-essentials' import { removeFiles, debouncePromise, slash, MaybePromise } from './utils' import { loadTsupConfig } from './load' import glob from 'globby' @@ -53,7 +52,7 @@ const normalizeOptions = async ( ...optionsFromConfigFile, ...optionsOverride, } - const options: Buildable = { + const options: Partial = { target: 'node14', outDir: 'dist', ..._options, @@ -108,6 +107,12 @@ const normalizeOptions = async ( options.tsconfigResolvePaths = tsconfig.data?.compilerOptions?.paths || {} options.tsconfigDecoratorMetadata = tsconfig.data?.compilerOptions?.emitDecoratorMetadata + if (options.dts) { + options.dts.compilerOptions = { + ...(tsconfig.data.compilerOptions || {}), + ...(options.dts.compilerOptions || {}), + } + } } else if (options.tsconfig) { throw new PrettyError(`Cannot find tsconfig: ${options.tsconfig}`) } diff --git a/src/options.ts b/src/options.ts index 598451cc..bdec9dca 100644 --- a/src/options.ts +++ b/src/options.ts @@ -29,6 +29,11 @@ export type DtsConfig = { banner?: string /** Insert at the bottom */ footer?: string + /** + * Overrides `compilerOptions` + * This option takes higher priority than `compilerOptions` in tsconfig.json + */ + compilerOptions?: any } export type BannerOrFooter = diff --git a/src/rollup.ts b/src/rollup.ts index 47946904..0261c174 100644 --- a/src/rollup.ts +++ b/src/rollup.ts @@ -15,11 +15,10 @@ import resolveFrom from 'resolve-from' const logger = createLogger() -const loadCompilerOptions = (tsconfig?: string) => { - if (!tsconfig) return {} - const configFile = ts.readConfigFile(tsconfig, ts.sys.readFile) +const parseCompilerOptions = (compilerOptions?: any) => { + if (!compilerOptions) return {} const { options } = ts.parseJsonConfigFileContent( - configFile.config, + { compilerOptions }, ts.sys, './' ) @@ -83,7 +82,7 @@ const getRollupConfig = async ( ): Promise => { setSilent(options.silent) - const compilerOptions = loadCompilerOptions(options.tsconfig) + const compilerOptions = parseCompilerOptions(options.dts?.compilerOptions) const dtsOptions = options.dts || {} dtsOptions.entry = dtsOptions.entry || options.entry