From a5c90d1032390f9f6160d95c42171aa3014b3d6b Mon Sep 17 00:00:00 2001 From: Georg Date: Sun, 27 Nov 2022 18:07:50 +0100 Subject: [PATCH] fix(typescript)!: incorrect declarations directory BREAKING CHANGES: This fix changes the output directory for types with single-file builds --- packages/typescript/src/index.ts | 9 +++++++++ packages/typescript/test/test.js | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/typescript/src/index.ts b/packages/typescript/src/index.ts index 4aef44624..97e51be50 100644 --- a/packages/typescript/src/index.ts +++ b/packages/typescript/src/index.ts @@ -157,6 +157,15 @@ export default function typescript(options: RollupTypescriptOptions = {}): Plugi (parsedOptions.options.declaration ? parsedOptions.options.declarationDir || parsedOptions.options.outDir : null); + const cwd = normalizePath(process.cwd()); + if ( + parsedOptions.options.declaration && + parsedOptions.options.declarationDir && + baseDir?.startsWith(cwd) + ) { + const declarationDir = baseDir.slice(cwd.length + 1); + baseDir = baseDir.slice(0, -1 * declarationDir.length); + } if (!baseDir && tsconfig) { baseDir = tsconfig.substring(0, tsconfig.lastIndexOf('/')); } diff --git a/packages/typescript/test/test.js b/packages/typescript/test/test.js index 8a66a5a2e..3e71cc83f 100644 --- a/packages/typescript/test/test.js +++ b/packages/typescript/test/test.js @@ -153,7 +153,7 @@ test.serial('supports emitting types also for single file output', async (t) => t.deepEqual( output.map((out) => out.fileName), - ['main.js', 'main.d.ts'] + ['main.js', 'dist/main.d.ts'] ); t.is(warnings.length, 0); });