@@ -10,21 +10,16 @@ const {
1010 } ,
1111} = primordials ;
1212const {
13- ensureNodeScheme,
1413 kBadExportsMessage,
1514 kMockSearchParam,
1615 kMockSuccess,
1716 kMockExists,
1817 kMockUnknownMessage,
1918} = require ( 'internal/test_runner/mock/mock' ) ;
20- const { pathToFileURL, URL } = require ( 'internal/url' ) ;
21- const { normalizeReferrerURL } = require ( 'internal/modules/helpers' ) ;
19+ const { URL , URLParse } = require ( 'internal/url' ) ;
2220let debug = require ( 'internal/util/debuglog' ) . debuglog ( 'test_runner' , ( fn ) => {
2321 debug = fn ;
2422} ) ;
25- const { createRequire, isBuiltin } = require ( 'module' ) ;
26- const { defaultGetFormatWithoutErrors } = require ( 'internal/modules/esm/get_format' ) ;
27- const { defaultResolve } = require ( 'internal/modules/esm/resolve' ) ;
2823
2924// TODO(cjihrig): The mocks need to be thread aware because the exports are
3025// evaluated on the thread that creates the mock. Before marking this API as
@@ -79,46 +74,18 @@ async function initialize(data) {
7974
8075async function resolve ( specifier , context , nextResolve ) {
8176 debug ( 'resolve hook entry, specifier = "%s", context = %o' , specifier , context ) ;
82- let mockSpecifier ;
8377
84- if ( isBuiltin ( specifier ) ) {
85- mockSpecifier = ensureNodeScheme ( specifier ) ;
86- } else {
87- let format ;
88-
89- if ( context . parentURL ) {
90- format = defaultGetFormatWithoutErrors ( pathToFileURL ( context . parentURL ) ) ;
91- }
92-
93- try {
94- if ( format === 'module' ) {
95- specifier = defaultResolve ( specifier , context ) . url ;
96- } else {
97- specifier = pathToFileURL (
98- createRequire ( context . parentURL ) . resolve ( specifier ) ,
99- ) . href ;
100- }
101- } catch {
102- const parentURL = normalizeReferrerURL ( context . parentURL ) ;
103- const parsedURL = URL . parse ( specifier , parentURL ) ?. href ;
104-
105- if ( parsedURL ) {
106- specifier = parsedURL ;
107- }
108- }
109-
110- mockSpecifier = specifier ;
111- }
78+ const nextResolveResult = await nextResolve ( specifier , context ) ;
79+ const mockSpecifier = nextResolveResult . url ;
11280
11381 const mock = mocks . get ( mockSpecifier ) ;
11482 debug ( 'resolve hook, specifier = "%s", mock = %o' , specifier , mock ) ;
11583
11684 if ( mock ?. active !== true ) {
117- return nextResolve ( specifier , context ) ;
85+ return nextResolveResult ;
11886 }
11987
12088 const url = new URL ( mockSpecifier ) ;
121-
12289 url . searchParams . set ( kMockSearchParam , mock . localVersion ) ;
12390
12491 if ( ! mock . cache ) {
@@ -127,13 +94,14 @@ async function resolve(specifier, context, nextResolve) {
12794 mock . localVersion ++ ;
12895 }
12996
130- debug ( 'resolve hook finished, url = "%s"' , url . href ) ;
131- return nextResolve ( url . href , context ) ;
97+ const { href } = url ;
98+ debug ( 'resolve hook finished, url = "%s"' , href ) ;
99+ return { __proto__ : null , url : href , format : nextResolveResult . format } ;
132100}
133101
134102async function load ( url , context , nextLoad ) {
135103 debug ( 'load hook entry, url = "%s", context = %o' , url , context ) ;
136- const parsedURL = URL . parse ( url ) ;
104+ const parsedURL = URLParse ( url ) ;
137105 if ( parsedURL ) {
138106 parsedURL . searchParams . delete ( kMockSearchParam ) ;
139107 }
0 commit comments