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); });