From 251cd4e20f1917251b76de4baa0133e878610754 Mon Sep 17 00:00:00 2001 From: Tim Fish Date: Wed, 10 Jan 2024 19:37:14 +0100 Subject: [PATCH] fix(node): Module name resolution --- packages/node/src/module.ts | 7 +++---- packages/node/test/module.test.ts | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/node/src/module.ts b/packages/node/src/module.ts index a2e93fe99115..58ff1be405c2 100644 --- a/packages/node/src/module.ts +++ b/packages/node/src/module.ts @@ -34,16 +34,15 @@ export function createGetModuleFromFilename( dir = '.'; } - let n = dir.lastIndexOf('/node_modules'); + const n = dir.lastIndexOf('/node_modules'); if (n > -1) { return `${dir.slice(n + 14).replace(/\//g, '.')}:${file}`; } // Let's see if it's a part of the main module // To be a part of main module, it has to share the same base - n = `${dir}/`.lastIndexOf(normalizedBase, 0); - if (n === 0) { - let moduleName = dir.slice(normalizedBase.length).replace(/\//g, '.'); + if (dir.startsWith(normalizedBase)) { + let moduleName = dir.slice(normalizedBase.length + 1).replace(/\//g, '.'); if (moduleName) { moduleName += ':'; diff --git a/packages/node/test/module.test.ts b/packages/node/test/module.test.ts index 3fdcdccfa6eb..cdf97834431e 100644 --- a/packages/node/test/module.test.ts +++ b/packages/node/test/module.test.ts @@ -1,7 +1,7 @@ import { createGetModuleFromFilename } from '../src/module'; -const getModuleFromFilenameWindows = createGetModuleFromFilename('C:\\Users\\Tim\\', true); -const getModuleFromFilenamePosix = createGetModuleFromFilename('/Users/Tim/'); +const getModuleFromFilenameWindows = createGetModuleFromFilename('C:\\Users\\Tim', true); +const getModuleFromFilenamePosix = createGetModuleFromFilename('/Users/Tim'); describe('createGetModuleFromFilename', () => { test('Windows', () => {