Skip to content

Commit 9516b3f

Browse files
fixup! repl: move completion logic to internal module
remove replBuiltinLibsWrapper
1 parent 71b8416 commit 9516b3f

File tree

3 files changed

+28
-21
lines changed

3 files changed

+28
-21
lines changed

lib/internal/repl/completion.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const {
3434
kContextId,
3535
getREPLResourceName,
3636
globalBuiltins,
37-
replBuiltinLibsWrapper,
37+
getReplBuiltinLibs,
3838
fixReplRequire,
3939
} = require('internal/repl/utils');
4040

@@ -77,8 +77,7 @@ fixReplRequire(module);
7777

7878
const { BuiltinModule } = require('internal/bootstrap/realm');
7979

80-
const nodeSchemeBuiltinLibs = ArrayPrototypeMap(
81-
replBuiltinLibsWrapper._builtinLibs, (lib) => `node:${lib}`);
80+
const nodeSchemeBuiltinLibs = ArrayPrototypeMap(getReplBuiltinLibs(), (lib) => `node:${lib}`);
8281
ArrayPrototypeForEach(
8382
BuiltinModule.getSchemeOnlyModuleNames(),
8483
(lib) => ArrayPrototypePush(nodeSchemeBuiltinLibs, `node:${lib}`),
@@ -275,7 +274,7 @@ function complete(line, callback) {
275274
}
276275
}
277276

278-
ArrayPrototypePush(completionGroups, replBuiltinLibsWrapper._builtinLibs, nodeSchemeBuiltinLibs);
277+
ArrayPrototypePush(completionGroups, getReplBuiltinLibs(), nodeSchemeBuiltinLibs);
279278
} else if ((match = RegExpPrototypeExec(importRE, line)) !== null) {
280279
// import('...<Tab>')
281280
completeOn = match[1];
@@ -339,7 +338,7 @@ function complete(line, callback) {
339338
}
340339
}
341340

342-
ArrayPrototypePush(completionGroups, replBuiltinLibsWrapper._builtinLibs, nodeSchemeBuiltinLibs);
341+
ArrayPrototypePush(completionGroups, getReplBuiltinLibs(), nodeSchemeBuiltinLibs);
343342
} else if ((match = RegExpPrototypeExec(fsAutoCompleteRE, line)) !== null &&
344343
this.allowBlockingCompletions) {
345344
({ 0: completionGroups, 1: completeOn } = completeFSFunctions(match));

lib/internal/repl/utils.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -818,12 +818,18 @@ function getREPLResourceName() {
818818
const globalBuiltins =
819819
new SafeSet(vm.runInNewContext('Object.getOwnPropertyNames(globalThis)'));
820820

821-
const replBuiltinLibsWrapper = {
822-
_builtinLibs: ArrayPrototypeFilter(
823-
CJSModule.builtinModules,
824-
(e) => e[0] !== '_' && !StringPrototypeStartsWith(e, 'node:'),
825-
),
826-
};
821+
let _builtinLibs = ArrayPrototypeFilter(
822+
CJSModule.builtinModules,
823+
(e) => e[0] !== '_' && !StringPrototypeStartsWith(e, 'node:'),
824+
);
825+
826+
function getReplBuiltinLibs() {
827+
return _builtinLibs;
828+
}
829+
830+
function setReplBuiltinLibs(value) {
831+
_builtinLibs = value;
832+
}
827833

828834
module.exports = {
829835
REPL_MODE_SLOPPY: Symbol('repl-sloppy'),
@@ -837,6 +843,7 @@ module.exports = {
837843
kContextId,
838844
getREPLResourceName,
839845
globalBuiltins,
840-
replBuiltinLibsWrapper,
846+
getReplBuiltinLibs,
847+
setReplBuiltinLibs,
841848
fixReplRequire,
842849
};

lib/repl.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ const {
152152
kContextId,
153153
getREPLResourceName,
154154
globalBuiltins,
155-
replBuiltinLibsWrapper,
155+
getReplBuiltinLibs,
156+
setReplBuiltinLibs,
156157
fixReplRequire,
157158
} = require('internal/repl/utils');
158159
const {
@@ -1399,31 +1400,31 @@ module.exports = {
13991400
ObjectDefineProperty(module.exports, 'builtinModules', {
14001401
__proto__: null,
14011402
get: pendingDeprecation ? deprecate(
1402-
() => replBuiltinLibsWrapper._builtinLibs,
1403+
() => getReplBuiltinLibs(),
14031404
'repl.builtinModules is deprecated. Check module.builtinModules instead',
14041405
'DEP0191',
1405-
) : () => replBuiltinLibsWrapper._builtinLibs,
1406+
) : () => getReplBuiltinLibs(),
14061407
set: pendingDeprecation ? deprecate(
1407-
(val) => replBuiltinLibsWrapper._builtinLibs = val,
1408+
(val) => setReplBuiltinLibs(val),
14081409
'repl.builtinModules is deprecated. Check module.builtinModules instead',
14091410
'DEP0191',
1410-
) : (val) => replBuiltinLibsWrapper._builtinLibs = val,
1411+
) : (val) => setReplBuiltinLibs(val),
14111412
enumerable: false,
14121413
configurable: true,
14131414
});
14141415

14151416
ObjectDefineProperty(module.exports, '_builtinLibs', {
14161417
__proto__: null,
14171418
get: pendingDeprecation ? deprecate(
1418-
() => replBuiltinLibsWrapper._builtinLibs,
1419+
() => getReplBuiltinLibs(),
14191420
'repl._builtinLibs is deprecated. Check module.builtinModules instead',
14201421
'DEP0142',
1421-
) : () => replBuiltinLibsWrapper._builtinLibs,
1422+
) : () => getReplBuiltinLibs(),
14221423
set: pendingDeprecation ? deprecate(
1423-
(val) => replBuiltinLibsWrapper._builtinLibs = val,
1424+
(val) => setReplBuiltinLibs(val),
14241425
'repl._builtinLibs is deprecated. Check module.builtinModules instead',
14251426
'DEP0142',
1426-
) : (val) => replBuiltinLibsWrapper._builtinLibs = val,
1427+
) : (val) => setReplBuiltinLibs(val),
14271428
enumerable: false,
14281429
configurable: true,
14291430
});

0 commit comments

Comments
 (0)