Skip to content

Commit 082d66f

Browse files
committed
Fix getModule so it correctly handles Windows paths
1 parent 1d5ac33 commit 082d66f

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

packages/node/src/module.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
11
import { basename, dirname } from '@sentry/utils';
22

3+
/** normalizes Windows paths */
4+
function normalisePath(path: string): string {
5+
return path
6+
.replace(/^[A-Z]:/, '') // remove Windows-style prefix
7+
.replace(/\\/g, '/'); // replace all `\` instances with `/`
8+
}
9+
310
/** Gets the module from a filename */
411
export function getModule(filename: string | undefined): string | undefined {
512
if (!filename) {
613
return;
714
}
815

16+
const normalizedFilename = normalisePath(filename);
17+
918
// We could use optional chaining here but webpack does like that mixed with require
10-
const base = `${
11-
(require && require.main && require.main.filename && dirname(require.main.filename)) || global.process.cwd()
12-
}/`;
19+
const base = normalisePath(
20+
`${(require && require.main && require.main.filename && dirname(require.main.filename)) || global.process.cwd()}/`,
21+
);
1322

1423
// It's specifically a module
15-
const file = basename(filename, '.js');
24+
const file = basename(normalizedFilename, '.js');
1625

17-
const path = dirname(filename);
26+
const path = dirname(normalizedFilename);
1827
let n = path.lastIndexOf('/node_modules/');
1928
if (n > -1) {
2029
// /node_modules/ is 14 chars

0 commit comments

Comments
 (0)