File tree Expand file tree Collapse file tree 3 files changed +43
-0
lines changed
Expand file tree Collapse file tree 3 files changed +43
-0
lines changed Original file line number Diff line number Diff line change @@ -62,6 +62,22 @@ const require = createRequire(import.meta.url);
6262const siblingModule = require (' ./sibling-module' );
6363` ` `
6464
65+ ### ` module .isBuiltin (moduleName)`
66+
67+ <!-- YAML
68+ added: REPLACEME
69+ -->
70+
71+ * ` moduleName` {string} name of the module
72+ * Returns:{boolean} returns true if the module is builtin else returns false
73+
74+ ` ` ` mjs
75+ import {isBuiltin } from ' node:module' ;
76+ isBuiltin (' node:fs' ); // true
77+ isBuiltin (' fs' ); // true
78+ isBuiltin (' wss' ); // false
79+ ` ` `
80+
6581### ` module .syncBuiltinESMExports ()`
6682
6783<!-- YAML
Original file line number Diff line number Diff line change 3333 ArrayPrototypeSplice,
3434 ArrayPrototypeUnshift,
3535 ArrayPrototypeUnshiftApply,
36+ ArrayPrototypeFlatMap,
3637 Boolean,
3738 Error,
3839 JSONParse,
5152 RegExpPrototypeExec,
5253 RegExpPrototypeTest,
5354 SafeMap,
55+ SafeSet,
5456 SafeWeakMap,
5557 String,
5658 StringPrototypeCharAt,
@@ -188,6 +190,11 @@ for (const{0: id, 1: mod } of NativeModule.map){
188190}
189191}
190192
193+ const allBuiltins = new SafeSet (
194+ ArrayPrototypeFlatMap ( builtinModules , ( bm ) => [ bm , `node:${ bm } ` ] )
195+ ) ;
196+ NativeModule . getSchemeOnlyModuleNames ( ) . forEach ( ( builtin ) => allBuiltins . add ( `node:${ builtin } ` ) ) ;
197+
191198ObjectFreeze ( builtinModules ) ;
192199Module . builtinModules = builtinModules ;
193200
@@ -1305,5 +1312,9 @@ Module.syncBuiltinESMExports = function syncBuiltinESMExports(){
13051312}
13061313} ;
13071314
1315+ Module . isBuiltin = function isBuiltin ( moduleName ) {
1316+ return allBuiltins . has ( moduleName ) ;
1317+ } ;
1318+
13081319// Backwards compatibility
13091320Module . Module = Module ;
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+ require ( '../common' ) ;
3+ const assert = require ( 'assert' ) ;
4+ const { isBuiltin } = require ( 'module' ) ;
5+
6+ // Includes modules in lib/ (even deprecated ones)
7+ assert ( isBuiltin ( 'http' ) ) ;
8+ assert ( isBuiltin ( 'sys' ) ) ;
9+ assert ( isBuiltin ( 'node:fs' ) ) ;
10+ assert ( isBuiltin ( 'node:test' ) ) ;
11+
12+ // Does not include internal modules
13+ assert ( ! isBuiltin ( 'internal/errors' ) ) ;
14+ assert ( ! isBuiltin ( 'test' ) ) ;
15+ assert ( ! isBuiltin ( '' ) ) ;
16+ assert ( ! isBuiltin ( undefined ) ) ;
You can’t perform that action at this time.
0 commit comments