@@ -109,7 +109,8 @@ let hasLoadedAnyUserCJSModule = false;
109109const {
110110 ERR_INVALID_ARG_VALUE ,
111111 ERR_INVALID_MODULE_SPECIFIER ,
112- ERR_REQUIRE_ESM
112+ ERR_REQUIRE_ESM ,
113+ ERR_UNKNOWN_BUILTIN_MODULE ,
113114} = require ( 'internal/errors' ) . codes ;
114115const { validateString } = require ( 'internal/validators' ) ;
115116const pendingDeprecation = getOptionValue ( '--pending-deprecation' ) ;
@@ -766,6 +767,17 @@ Module._load = function(request, parent, isMain) {
766767 }
767768
768769 const filename = Module . _resolveFilename ( request , parent , isMain ) ;
770+ if ( StringPrototypeStartsWith ( filename , 'node:' ) ) {
771+ // Slice 'node:' prefix
772+ const id = StringPrototypeSlice ( filename , 5 ) ;
773+
774+ const module = loadNativeModule ( id , request ) ;
775+ if ( ! module ?. canBeRequiredByUsers ) {
776+ throw new ERR_UNKNOWN_BUILTIN_MODULE ( filename ) ;
777+ }
778+
779+ return module . exports ;
780+ }
769781
770782 const cachedModule = Module . _cache [ filename ] ;
771783 if ( cachedModule !== undefined ) {
@@ -837,7 +849,8 @@ Module._load = function(request, parent, isMain) {
837849} ;
838850
839851Module . _resolveFilename = function ( request , parent , isMain , options ) {
840- if ( NativeModule . canBeRequiredByUsers ( request ) ) {
852+ if ( StringPrototypeStartsWith ( request , 'node:' ) ||
853+ NativeModule . canBeRequiredByUsers ( request ) ) {
841854 return request ;
842855 }
843856
0 commit comments