module: use kNodeModulesRE to detect node_modules

This is faster and more consistent with other places using the
regular expression to detect node_modules.

PR-URL: https://github.com/nodejs/node/pull/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>
This commit is contained in:
Joyee Cheung 2024-10-04 19:29:34 +02:00 committed by GitHub
parent d2ad9b4fb6
commit bdd590be73
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 11 additions and 16 deletions

View File

@ -124,6 +124,7 @@ const { pathToFileURL, fileURLToPath, isURL } = require('internal/url');
const { const {
pendingDeprecate, pendingDeprecate,
emitExperimentalWarning, emitExperimentalWarning,
isUnderNodeModules,
kEmptyObject, kEmptyObject,
setOwnProperty, setOwnProperty,
getLazy, getLazy,
@ -146,7 +147,6 @@ const { safeGetenv } = internalBinding('credentials');
const { const {
getCjsConditions, getCjsConditions,
initializeCjsConditions, initializeCjsConditions,
isUnderNodeModules,
loadBuiltinModule, loadBuiltinModule,
makeRequireFunction, makeRequireFunction,
setHasStartedUserCJSExecution, setHasStartedUserCJSExecution,

View File

@ -3,7 +3,10 @@
const { const {
RegExpPrototypeExec, RegExpPrototypeExec,
} = primordials; } = primordials;
const { kEmptyObject } = require('internal/util'); const {
isUnderNodeModules,
kEmptyObject,
} = require('internal/util');
const { defaultGetFormat } = require('internal/modules/esm/get_format'); const { defaultGetFormat } = require('internal/modules/esm/get_format');
const { validateAttributes, emitImportAssertionWarning } = require('internal/modules/esm/assert'); const { validateAttributes, emitImportAssertionWarning } = require('internal/modules/esm/assert');
@ -14,9 +17,6 @@ const defaultType =
getOptionValue('--experimental-default-type'); getOptionValue('--experimental-default-type');
const { Buffer: { from: BufferFrom } } = require('buffer'); const { Buffer: { from: BufferFrom } } = require('buffer');
const {
isUnderNodeModules,
} = require('internal/modules/helpers');
const { URL } = require('internal/url'); const { URL } = require('internal/url');
const { const {

View File

@ -2,7 +2,6 @@
const { const {
ArrayPrototypeForEach, ArrayPrototypeForEach,
ArrayPrototypeIncludes,
ObjectDefineProperty, ObjectDefineProperty,
ObjectFreeze, ObjectFreeze,
ObjectPrototypeHasOwnProperty, ObjectPrototypeHasOwnProperty,
@ -11,7 +10,6 @@ const {
StringPrototypeCharCodeAt, StringPrototypeCharCodeAt,
StringPrototypeIncludes, StringPrototypeIncludes,
StringPrototypeSlice, StringPrototypeSlice,
StringPrototypeSplit,
StringPrototypeStartsWith, StringPrototypeStartsWith,
} = primordials; } = primordials;
const { const {
@ -387,13 +385,6 @@ function stripTypeScriptTypes(source, filename) {
return `${code}\n\n//# sourceURL=${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')} */ /** @type {import('internal/util/types')} */
let _TYPES = null; let _TYPES = null;
/** /**
@ -494,7 +485,6 @@ module.exports = {
getCjsConditions, getCjsConditions,
getCompileCacheDir, getCompileCacheDir,
initializeCjsConditions, initializeCjsConditions,
isUnderNodeModules,
loadBuiltinModule, loadBuiltinModule,
makeRequireFunction, makeRequireFunction,
normalizeReferrerURL, normalizeReferrerURL,

View File

@ -484,6 +484,10 @@ function spliceOne(list, index) {
const kNodeModulesRE = /^(?:.*)[\\/]node_modules[\\/]/; const kNodeModulesRE = /^(?:.*)[\\/]node_modules[\\/]/;
function isUnderNodeModules(filename) {
return filename && (RegExpPrototypeExec(kNodeModulesRE, filename) !== null);
}
let getStructuredStackImpl; let getStructuredStackImpl;
function lazyGetStructuredStack() { function lazyGetStructuredStack() {
@ -531,7 +535,7 @@ function isInsideNodeModules() {
) { ) {
continue; continue;
} }
return RegExpPrototypeExec(kNodeModulesRE, filename) !== null; return isUnderNodeModules(filename);
} }
} }
return false; return false;
@ -911,6 +915,7 @@ module.exports = {
guessHandleType, guessHandleType,
isError, isError,
isInsideNodeModules, isInsideNodeModules,
isUnderNodeModules,
isMacOS, isMacOS,
isWindows, isWindows,
join, join,