@@ -110,7 +110,8 @@ const {
110110 ERR_INVALID_ARG_VALUE ,
111111 ERR_INVALID_OPT_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' ) ;
@@ -743,6 +744,17 @@ Module._load = function(request, parent, isMain) {
743744 }
744745
745746 const filename = Module . _resolveFilename ( request , parent , isMain ) ;
747+ if ( StringPrototypeStartsWith ( filename , 'node:' ) ) {
748+ // Slice 'node:' prefix
749+ const id = StringPrototypeSlice ( filename , 5 ) ;
750+
751+ const module = loadNativeModule ( id , request ) ;
752+ if ( ! module ?. canBeRequiredByUsers ) {
753+ throw new ERR_UNKNOWN_BUILTIN_MODULE ( filename ) ;
754+ }
755+
756+ return module . exports ;
757+ }
746758
747759 const cachedModule = Module . _cache [ filename ] ;
748760 if ( cachedModule !== undefined ) {
@@ -802,7 +814,8 @@ Module._load = function(request, parent, isMain) {
802814} ;
803815
804816Module . _resolveFilename = function ( request , parent , isMain , options ) {
805- if ( NativeModule . canBeRequiredByUsers ( request ) ) {
817+ if ( StringPrototypeStartsWith ( request , 'node:' ) ||
818+ NativeModule . canBeRequiredByUsers ( request ) ) {
806819 return request ;
807820 }
808821
0 commit comments