@@ -110,7 +110,8 @@ let hasLoadedAnyUserCJSModule = false;
110
110
const {
111
111
ERR_INVALID_ARG_VALUE ,
112
112
ERR_INVALID_MODULE_SPECIFIER ,
113
- ERR_REQUIRE_ESM
113
+ ERR_REQUIRE_ESM ,
114
+ ERR_UNKNOWN_BUILTIN_MODULE ,
114
115
} = require ( 'internal/errors' ) . codes ;
115
116
const { validateString } = require ( 'internal/validators' ) ;
116
117
const pendingDeprecation = getOptionValue ( '--pending-deprecation' ) ;
@@ -770,6 +771,17 @@ Module._load = function(request, parent, isMain) {
770
771
}
771
772
772
773
const filename = Module . _resolveFilename ( request , parent , isMain ) ;
774
+ if ( StringPrototypeStartsWith ( filename , 'node:' ) ) {
775
+ // Slice 'node:' prefix
776
+ const id = StringPrototypeSlice ( filename , 5 ) ;
777
+
778
+ const module = loadNativeModule ( id , request ) ;
779
+ if ( ! module ?. canBeRequiredByUsers ) {
780
+ throw new ERR_UNKNOWN_BUILTIN_MODULE ( filename ) ;
781
+ }
782
+
783
+ return module . exports ;
784
+ }
773
785
774
786
const cachedModule = Module . _cache [ filename ] ;
775
787
if ( cachedModule !== undefined ) {
@@ -841,7 +853,8 @@ Module._load = function(request, parent, isMain) {
841
853
} ;
842
854
843
855
Module . _resolveFilename = function ( request , parent , isMain , options ) {
844
- if ( NativeModule . canBeRequiredByUsers ( request ) ) {
856
+ if ( StringPrototypeStartsWith ( request , 'node:' ) ||
857
+ NativeModule . canBeRequiredByUsers ( request ) ) {
845
858
return request ;
846
859
}
847
860
0 commit comments