Skip to content

Commit

Permalink
fix: Make generateBundle function more self explaining
Browse files Browse the repository at this point in the history
Signed-off-by: Ferdinand Thiessen <rpm@fthiessen.de>
  • Loading branch information
susnux committed Mar 9, 2023
1 parent 7390519 commit b56502c
Showing 1 changed file with 22 additions and 19 deletions.
41 changes: 22 additions & 19 deletions packages/typescript/src/index.ts
Expand Up @@ -154,27 +154,30 @@ export default function typescript(options: RollupTypescriptOptions = {}): Plugi
const output = findTypescriptOutput(ts, parsedOptions, fileName, emittedFiles, tsCache);
output.declarations.forEach((id) => {
const code = getEmittedFile(id, emittedFiles, tsCache);
let baseDir =
outputOptions.dir ||
(parsedOptions.options.declaration
? parsedOptions.options.declarationDir || parsedOptions.options.outDir
: null);
const outputDir = normalizePath(
outputOptions.dir ||
(outputOptions.file ? path.dirname(outputOptions.file) : process.cwd())
);
if (
parsedOptions.options.declaration &&
parsedOptions.options.declarationDir &&
baseDir?.startsWith(outputDir)
) {
const declarationDir = baseDir.slice(outputDir.length + 1);
baseDir = baseDir.slice(0, -1 * declarationDir.length);
if (!code || !parsedOptions.options.declaration) {
return;
}
if (!baseDir && tsconfig) {
baseDir = tsconfig.substring(0, tsconfig.lastIndexOf('/'));

let baseDir: string | undefined;
if (outputOptions.dir) {
baseDir = outputOptions.dir;
} else if (outputOptions.file) {
// find common path of output.file and configured declation output
const outputDir = path.dirname(outputOptions.file);
const configured = path.resolve(
parsedOptions.options.declarationDir ||
parsedOptions.options.outDir ||
tsconfig ||
process.cwd()
);
const backwards = path
.relative(outputDir, configured)
.split(path.sep)
.filter((v) => v === '..')
.join(path.sep);
baseDir = path.normalize(`${outputDir}/${backwards}`);
}
if (!code || !baseDir) return;
if (!baseDir) return;

this.emitFile({
type: 'asset',
Expand Down

0 comments on commit b56502c

Please sign in to comment.