diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 9d3818603f4e2b..e4b3ce57b88b1e 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -124,6 +124,7 @@ const { pathToFileURL, fileURLToPath, isURL } = require('internal/url'); const { pendingDeprecate, emitExperimentalWarning, + isUnderNodeModules, kEmptyObject, setOwnProperty, getLazy, @@ -146,7 +147,6 @@ const { safeGetenv } = internalBinding('credentials'); const { getCjsConditions, initializeCjsConditions, - isUnderNodeModules, loadBuiltinModule, makeRequireFunction, setHasStartedUserCJSExecution, diff --git a/lib/internal/modules/esm/load.js b/lib/internal/modules/esm/load.js index 1932dd3c9ca369..d56dae3f001b1c 100644 --- a/lib/internal/modules/esm/load.js +++ b/lib/internal/modules/esm/load.js @@ -3,7 +3,10 @@ const { RegExpPrototypeExec, } = primordials; -const { kEmptyObject } = require('internal/util'); +const { + isUnderNodeModules, + kEmptyObject, +} = require('internal/util'); const { defaultGetFormat } = require('internal/modules/esm/get_format'); const { validateAttributes, emitImportAssertionWarning } = require('internal/modules/esm/assert'); @@ -14,9 +17,6 @@ const defaultType = getOptionValue('--experimental-default-type'); const { Buffer: { from: BufferFrom } } = require('buffer'); -const { - isUnderNodeModules, -} = require('internal/modules/helpers'); const { URL } = require('internal/url'); const { diff --git a/lib/internal/modules/helpers.js b/lib/internal/modules/helpers.js index 1add21bb541cf4..11adec360cc98c 100644 --- a/lib/internal/modules/helpers.js +++ b/lib/internal/modules/helpers.js @@ -2,7 +2,6 @@ const { ArrayPrototypeForEach, - ArrayPrototypeIncludes, ObjectDefineProperty, ObjectFreeze, ObjectPrototypeHasOwnProperty, @@ -11,7 +10,6 @@ const { StringPrototypeCharCodeAt, StringPrototypeIncludes, StringPrototypeSlice, - StringPrototypeSplit, StringPrototypeStartsWith, } = primordials; const { @@ -380,12 +378,6 @@ function stripTypeScriptTypes(source, filename) { return `${code}\n\n//# sourceURL=${filename}`; } -function isUnderNodeModules(filename) { - const resolvedPath = path.resolve(filename); - const normalizedPath = path.normalize(resolvedPath); - const splitPath = StringPrototypeSplit(normalizedPath, path.sep); - return ArrayPrototypeIncludes(splitPath, 'node_modules'); -} /** * Enable on-disk compiled cache for all user modules being complied in the current Node.js instance @@ -486,7 +478,6 @@ module.exports = { getCjsConditions, getCompileCacheDir, initializeCjsConditions, - isUnderNodeModules, loadBuiltinModule, makeRequireFunction, normalizeReferrerURL, diff --git a/lib/internal/util.js b/lib/internal/util.js index 0973d4efdf2257..8cba1c90ab8189 100644 --- a/lib/internal/util.js +++ b/lib/internal/util.js @@ -481,6 +481,10 @@ function spliceOne(list, index) { const kNodeModulesRE = /^(?:.*)[\\/]node_modules[\\/]/; +function isUnderNodeModules(filename) { + return filename && (RegExpPrototypeExec(kNodeModulesRE, filename) !== null); +} + let getStructuredStackImpl; function lazyGetStructuredStack() { @@ -528,7 +532,7 @@ function isInsideNodeModules() { ) { continue; } - return RegExpPrototypeExec(kNodeModulesRE, filename) !== null; + return isUnderNodeModules(filename); } } return false; @@ -908,6 +912,7 @@ module.exports = { guessHandleType, isError, isInsideNodeModules, + isUnderNodeModules, isMacOS, isWindows, join,