This recipe migrates code from the deprecated repl.builtinModules and repl._builtinLibs properties to the stable module.builtinModules API.
Deprecation
Node.js deprecated repl.builtinModules and repl._builtinLibs in favor of module.builtinModules.
See DEP0191 and DEP0142 for more details.
Usage
Run this codemod with:
npx codemod nodejs/repl-builtin-modules
Before/After
- import repl from 'node:repl';
+ import module from 'node:module';
- console.log(repl.builtinModules);
+ console.log(module.builtinModules);
- console.log(repl._builtinLibs);
+ console.log(module.builtinModules);
What It Does
- Replaces
repl.builtinModules with module.builtinModules
- Replaces
repl._builtinLibs with module.builtinModules
- Updates imports from
node:repl to node:module when appropriate
- Works with both ESM and CommonJS patterns
Common Use Cases
Listing Built-in Modules
- const repl = require('node:repl');
+ const module = require('node:module');
- const builtins = repl.builtinModules;
+ const builtins = module.builtinModules;
console.log(builtins);
// ['fs', 'path', 'http', ...]
Checking if Module is Built-in
- import repl from 'node:repl';
+ import module from 'node:module';
function isBuiltin(name) {
- return repl.builtinModules.includes(name);
+ return module.builtinModules.includes(name);
}
console.log(isBuiltin('fs')); // true
console.log(isBuiltin('express')); // false
The property repl._builtinLibs was always a private API (prefixed with _). Always use module.builtinModules for stable, public access.
The module.builtinModules array includes all built-in Node.js modules like ‘fs’, ‘path’, ‘http’, ‘crypto’, etc. Use it to validate module names or build autocomplete features.