1
1
import { Package } from "../../createPackage.js" ;
2
2
import { getEsmModuleBindings } from "./esmBindings.js" ;
3
- import { esmResolve } from "./esmResolve.js" ;
4
3
import { getCjsModuleNamespace } from "./cjsNamespace.js" ;
4
+ import { esmResolve } from "./resolve.js" ;
5
5
6
6
// Note: this doesn't handle ambiguous indirect exports which probably isn't worth the
7
7
// implementation complexity.
@@ -13,28 +13,28 @@ export function getEsmModuleNamespace(
13
13
seen = new Set < string > ( ) ,
14
14
) : string [ ] {
15
15
// Resolve specifier
16
- const { format, resolved } = esmResolve ( fs , specifier , parentURL ) ;
16
+ const { format, url } = esmResolve ( fs , specifier , parentURL ) ;
17
17
18
18
// Don't recurse for circular indirect exports
19
- if ( seen . has ( resolved . pathname ) ) {
19
+ if ( seen . has ( url . pathname ) ) {
20
20
return [ ] ;
21
21
}
22
- seen . add ( resolved . pathname ) ;
22
+ seen . add ( url . pathname ) ;
23
23
24
24
if ( format === "commonjs" ) {
25
- return [ ...getCjsModuleNamespace ( fs , resolved ) ] ;
25
+ return [ ...getCjsModuleNamespace ( fs , url ) ] ;
26
26
}
27
27
28
28
// Parse module bindings
29
29
const bindings =
30
30
( format ?? "module" ) === "module"
31
- ? getEsmModuleBindings ( fs . readFile ( resolved . pathname ) )
31
+ ? getEsmModuleBindings ( fs . readFile ( url . pathname ) )
32
32
: // Maybe JSON, WASM, etc
33
33
{ exports : [ "default" ] , reexports : [ ] } ;
34
34
35
35
// Concat indirect exports
36
36
const indirect = bindings . reexports
37
- . flatMap ( ( specifier ) => getEsmModuleNamespace ( fs , specifier , resolved , seen ) )
37
+ . flatMap ( ( specifier ) => getEsmModuleNamespace ( fs , specifier , url , seen ) )
38
38
. filter ( ( name ) => name !== "default" ) ;
39
39
return [ ...new Set ( [ ...bindings . exports , ...indirect ] ) ] ;
40
40
}
0 commit comments