Skip to content

Commit

Permalink
module: use kNodeModulesRE to detect node_modules
Browse files Browse the repository at this point in the history
This is faster and more consistent with other places using the
regular expression to detect node_modules.

PR-URL: nodejs#55243
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
  • Loading branch information
joyeecheung authored and tpoisseau committed Nov 21, 2024
1 parent 29d6579 commit c6a0bf1
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 16 deletions.
2 changes: 1 addition & 1 deletion lib/internal/modules/cjs/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ const { pathToFileURL, fileURLToPath, isURL } = require('internal/url');
const {
pendingDeprecate,
emitExperimentalWarning,
isUnderNodeModules,
kEmptyObject,
setOwnProperty,
getLazy,
Expand All @@ -146,7 +147,6 @@ const { safeGetenv } = internalBinding('credentials');
const {
getCjsConditions,
initializeCjsConditions,
isUnderNodeModules,
loadBuiltinModule,
makeRequireFunction,
setHasStartedUserCJSExecution,
Expand Down
8 changes: 4 additions & 4 deletions lib/internal/modules/esm/load.js
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand All @@ -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 {
Expand Down
10 changes: 0 additions & 10 deletions lib/internal/modules/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

const {
ArrayPrototypeForEach,
ArrayPrototypeIncludes,
ObjectDefineProperty,
ObjectFreeze,
ObjectPrototypeHasOwnProperty,
Expand All @@ -11,7 +10,6 @@ const {
StringPrototypeCharCodeAt,
StringPrototypeIncludes,
StringPrototypeSlice,
StringPrototypeSplit,
StringPrototypeStartsWith,
} = primordials;
const {
Expand Down Expand Up @@ -387,13 +385,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');
}

/** @type {import('internal/util/types')} */
let _TYPES = null;
/**
Expand Down Expand Up @@ -494,7 +485,6 @@ module.exports = {
getCjsConditions,
getCompileCacheDir,
initializeCjsConditions,
isUnderNodeModules,
loadBuiltinModule,
makeRequireFunction,
normalizeReferrerURL,
Expand Down
7 changes: 6 additions & 1 deletion lib/internal/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -484,6 +484,10 @@ function spliceOne(list, index) {

const kNodeModulesRE = /^(?:.*)[\\/]node_modules[\\/]/;

function isUnderNodeModules(filename) {
return filename && (RegExpPrototypeExec(kNodeModulesRE, filename) !== null);
}

let getStructuredStackImpl;

function lazyGetStructuredStack() {
Expand Down Expand Up @@ -531,7 +535,7 @@ function isInsideNodeModules() {
) {
continue;
}
return RegExpPrototypeExec(kNodeModulesRE, filename) !== null;
return isUnderNodeModules(filename);
}
}
return false;
Expand Down Expand Up @@ -911,6 +915,7 @@ module.exports = {
guessHandleType,
isError,
isInsideNodeModules,
isUnderNodeModules,
isMacOS,
isWindows,
join,
Expand Down

0 comments on commit c6a0bf1

Please sign in to comment.