From cb887ecf859a922e9a4aa79ee9a39afeea1d68be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Nison?= Date: Tue, 6 Sep 2022 15:10:00 +0200 Subject: [PATCH] module: Open stat/readPackage to mutations --- lib/internal/modules/cjs/loader.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/internal/modules/cjs/loader.js b/lib/internal/modules/cjs/loader.js index 102bf90953b65b..252a34d9d80d80 100644 --- a/lib/internal/modules/cjs/loader.js +++ b/lib/internal/modules/cjs/loader.js @@ -162,6 +162,7 @@ function stat(filename) { } return result; } +Module._stat = stat; function updateChildren(parent, child, scan) { const children = parent?.children; @@ -334,6 +335,7 @@ function readPackage(requestPath) { throw e; } } +Module._readPackage = readPackage; function readPackageScope(checkPath) { const rootSeparatorIndex = StringPrototypeIndexOf(checkPath, sep); @@ -343,7 +345,7 @@ function readPackageScope(checkPath) { checkPath = StringPrototypeSlice(checkPath, 0, separatorIndex); if (StringPrototypeEndsWith(checkPath, sep + 'node_modules')) return false; - const pjson = readPackage(checkPath + sep); + const pjson = Module._readPackage(checkPath + sep); if (pjson) return { data: pjson, path: checkPath, @@ -353,7 +355,7 @@ function readPackageScope(checkPath) { } function tryPackage(requestPath, exts, isMain, originalPath) { - const pkg = readPackage(requestPath)?.main; + const pkg = Module._readPackage(requestPath)?.main; if (!pkg) { return tryExtensions(path.resolve(requestPath, 'index'), exts, isMain); @@ -399,7 +401,7 @@ const realpathCache = new SafeMap(); // keep symlinks intact, otherwise resolve to the // absolute realpath. function tryFile(requestPath, isMain) { - const rc = stat(requestPath); + const rc = Module._stat(requestPath); if (rc !== 0) return; if (preserveSymlinks && !isMain) { return path.resolve(requestPath); @@ -493,7 +495,7 @@ function resolveExports(nmPath, request) { if (!name) return; const pkgPath = path.resolve(nmPath, name); - const pkg = readPackage(pkgPath); + const pkg = Module._readPackage(pkgPath); if (pkg?.exports != null) { try { return finalizeEsmResolution(packageExportsResolve( @@ -533,7 +535,7 @@ Module._findPath = function(request, paths, isMain) { for (let i = 0; i < paths.length; i++) { // Don't search further if path doesn't exist const curPath = paths[i]; - if (curPath && stat(curPath) < 1) continue; + if (curPath && Module._stat(curPath) < 1) continue; if (!absoluteRequest) { const exportsResolved = resolveExports(curPath, request); @@ -544,7 +546,7 @@ Module._findPath = function(request, paths, isMain) { const basePath = path.resolve(curPath, request); let filename; - const rc = stat(basePath); + const rc = Module._stat(basePath); if (!trailingSlash) { if (rc === 0) { // File. if (!isMain) {