From 1b7ff87423251797a0af897fd7f5538469cb62ff Mon Sep 17 00:00:00 2001 From: baki gul Date: Tue, 10 Jun 2025 00:52:56 +0300 Subject: [PATCH 1/3] repl: avoid deprecated `require.extensions` in tab completion --- lib/repl.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/repl.js b/lib/repl.js index d500181736b7ac..00778a778ab39d 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -1360,7 +1360,11 @@ function complete(line, callback) { filter = completeOn; if (this.allowBlockingCompletions) { const subdir = match[2] || ''; - const extensions = ObjectKeys(this.context.require.extensions); + // `require.extensions` is runtime-deprecated (DEP0039). + // Use `Module._extensions` to access the same extension map + // without triggering the deprecation warning. + const Module = require('module'); + const extensions = ObjectKeys(Module._extensions); const indexes = ArrayPrototypeMap(extensions, (extension) => `index${extension}`); ArrayPrototypePush(indexes, 'package.json', 'index'); From 00a2537203edd982b9644ff82af3da1467972a33 Mon Sep 17 00:00:00 2001 From: baki gul Date: Tue, 10 Jun 2025 17:44:30 +0300 Subject: [PATCH 2/3] equire module moved up --- lib/repl.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index 00778a778ab39d..2ddf9346b15263 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -202,6 +202,7 @@ const { kLastCommandErrored, } = require('internal/readline/interface'); let nextREPLResourceNumber = 1; +const Module = require('module'); // This prevents v8 code cache from getting confused and using a different // cache from a resource of the same name function getREPLResourceName() { @@ -1360,10 +1361,6 @@ function complete(line, callback) { filter = completeOn; if (this.allowBlockingCompletions) { const subdir = match[2] || ''; - // `require.extensions` is runtime-deprecated (DEP0039). - // Use `Module._extensions` to access the same extension map - // without triggering the deprecation warning. - const Module = require('module'); const extensions = ObjectKeys(Module._extensions); const indexes = ArrayPrototypeMap(extensions, (extension) => `index${extension}`); From 5cb50796453925b705c2bbea6a9c8c6017d0c38a Mon Sep 17 00:00:00 2001 From: baki gul Date: Wed, 11 Jun 2025 13:44:28 +0300 Subject: [PATCH 3/3] refactor: replace deprecated Module reference with CJSModule in REPL completion --- lib/repl.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index 2ddf9346b15263..75e845c07ce989 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -202,7 +202,6 @@ const { kLastCommandErrored, } = require('internal/readline/interface'); let nextREPLResourceNumber = 1; -const Module = require('module'); // This prevents v8 code cache from getting confused and using a different // cache from a resource of the same name function getREPLResourceName() { @@ -1361,7 +1360,7 @@ function complete(line, callback) { filter = completeOn; if (this.allowBlockingCompletions) { const subdir = match[2] || ''; - const extensions = ObjectKeys(Module._extensions); + const extensions = ObjectKeys(CJSModule._extensions); const indexes = ArrayPrototypeMap(extensions, (extension) => `index${extension}`); ArrayPrototypePush(indexes, 'package.json', 'index');