Skip to content

Commit c9683f5

Browse files
committed
refactor: enhance source map handling and file name resolution
- Add support for `sourceMapBaseUrl` in sourcemap configuration. - Use `path.basename` for consistent source map file names across utilities.
1 parent 2ef6d09 commit c9683f5

3 files changed

Lines changed: 7 additions & 3 deletions

File tree

src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,13 @@ export default function viteBundleObfuscator(config?: Partial<Config>): PluginOp
108108
const configResolvedHandler: (resolvedConfig: ResolvedConfig) => void | Promise<void> = (resolvedConfig) => {
109109
const sourcemap = resolvedConfig.build.sourcemap;
110110
if (sourcemap) {
111+
const output = resolvedConfig.build.rollupOptions?.output;
112+
const sourcemapBaseUrl = !isArray(output) ? output?.sourcemapBaseUrl : undefined;
111113
finalConfig.options = {
112114
...finalConfig.options,
113115
sourceMap: true,
114116
sourceMapMode: sourcemap === 'inline' ? 'inline' : 'separate',
117+
...(sourcemapBaseUrl && { sourceMapBaseUrl: sourcemapBaseUrl }),
115118
};
116119
}
117120
};

src/utils/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ export function obfuscateBundle(finalConfig: Config, fileName: string, bundleIte
179179
? {
180180
...finalConfig.options,
181181
inputFileName: fileName,
182-
sourceMapFileName: `${fileName}.map`,
182+
sourceMapFileName: `${path.basename(fileName)}.map`,
183183
}
184184
: finalConfig.options;
185185
const obfuscated = javascriptObfuscator.obfuscate(bundleItem.code, fileSpecificOptions);
@@ -212,7 +212,7 @@ export function obfuscateLibBundle(finalConfig: Config, fileName: string, code:
212212
? {
213213
...finalConfig.options,
214214
inputFileName: fileName,
215-
sourceMapFileName: `${fileName}.map`,
215+
sourceMapFileName: `${path.basename(fileName)}.map`,
216216
}
217217
: finalConfig.options;
218218
const obfuscated = javascriptObfuscator.obfuscate(code, fileSpecificOptions);

src/worker/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { parentPort } from 'node:worker_threads';
2+
import path from 'node:path';
23
import javascriptObfuscator, { ObfuscatorOptions } from 'javascript-obfuscator';
34
import { composeSourcemaps, Log, ObfuscatedFilesRegistry } from '../utils';
45
import type { ObfuscationResult, WorkerMessage } from '../type';
@@ -28,7 +29,7 @@ if (parentPort) {
2829
? {
2930
...message.config.options,
3031
inputFileName: fileName,
31-
sourceMapFileName: `${fileName}.map`,
32+
sourceMapFileName: `${path.basename(fileName)}.map`,
3233
}
3334
: message.config.options;
3435
const obfuscated = javascriptObfuscator.obfuscate(bundleItem.code, fileSpecificOptions);

0 commit comments

Comments
 (0)