1
1
import { getImportArg } from '../util'
2
2
3
- export default function resolveProperty ( { types : t , template } ) {
4
- const buildStatements = template `
5
- if (require.resolveWeak) {
6
- return require.resolveWeak(ID)
7
- }
8
-
9
- return eval('require.resolve')(ID)
10
- `
3
+ export default function resolveProperty (
4
+ { types : t , template } ,
5
+ { moduleFederation } ,
6
+ ) {
7
+ const templates = {
8
+ federated : template `
9
+ require(ID)
10
+
11
+ if (require.resolveWeak) {
12
+ return require.resolveWeak(ID)
13
+ }
14
+
15
+ return eval('require.resolve')(ID)
16
+ ` ,
17
+ standard : template `
18
+ if (require.resolveWeak) {
19
+ return require.resolveWeak(ID)
20
+ }
21
+
22
+ return eval('require.resolve')(ID)
23
+ ` ,
24
+ }
11
25
12
26
function getCallValue ( callPath ) {
13
27
const importArg = getImportArg ( callPath )
@@ -27,11 +41,16 @@ export default function resolveProperty({ types: t, template }) {
27
41
return t . stringLiteral ( importArg . node . value )
28
42
}
29
43
30
- return ( { callPath, funcPath } ) =>
31
- t . objectMethod (
44
+ return ( { callPath, funcPath } ) => {
45
+ const targetTemplate = moduleFederation ? 'federated' : 'standard'
46
+
47
+ return t . objectMethod (
32
48
'method' ,
33
49
t . identifier ( 'resolve' ) ,
34
50
funcPath . node . params ,
35
- t . blockStatement ( buildStatements ( { ID : getCallValue ( callPath ) } ) ) ,
51
+ t . blockStatement (
52
+ templates [ targetTemplate ] ( { ID : getCallValue ( callPath ) } ) ,
53
+ ) ,
36
54
)
55
+ }
37
56
}
0 commit comments