@@ -110,7 +110,8 @@ let hasLoadedAnyUserCJSModule = false;
110110const {
111111 ERR_INVALID_ARG_VALUE ,
112112 ERR_INVALID_MODULE_SPECIFIER ,
113- ERR_REQUIRE_ESM
113+ ERR_REQUIRE_ESM ,
114+ ERR_UNKNOWN_BUILTIN_MODULE ,
114115} = require ( 'internal/errors' ) . codes ;
115116const { validateString } = require ( 'internal/validators' ) ;
116117const pendingDeprecation = getOptionValue ( '--pending-deprecation' ) ;
@@ -770,6 +771,17 @@ Module._load = function(request, parent, isMain) {
770771 }
771772
772773 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+ }
773785
774786 const cachedModule = Module . _cache [ filename ] ;
775787 if ( cachedModule !== undefined ) {
@@ -841,7 +853,8 @@ Module._load = function(request, parent, isMain) {
841853} ;
842854
843855Module . _resolveFilename = function ( request , parent , isMain , options ) {
844- if ( NativeModule . canBeRequiredByUsers ( request ) ) {
856+ if ( StringPrototypeStartsWith ( request , 'node:' ) ||
857+ NativeModule . canBeRequiredByUsers ( request ) ) {
845858 return request ;
846859 }
847860
0 commit comments