@@ -34,25 +34,33 @@ export const applyPathFixes = (
34
34
pluginOptions : moduleFederationPlugin . ModuleFederationPluginOptions ,
35
35
options : any ,
36
36
) => {
37
- const match = findLoaderForResource ( compiler . options . module . rules , {
38
- path : path . join ( compiler . context , '/something/thing.js' ) ,
39
- issuerLayer : undefined ,
40
- layer : undefined ,
41
- } ) ;
37
+ const match = findLoaderForResource (
38
+ compiler . options . module . rules as RuleSetRule [ ] ,
39
+ {
40
+ path : path . join ( compiler . context , '/something/thing.js' ) ,
41
+ issuerLayer : undefined ,
42
+ layer : undefined ,
43
+ } ,
44
+ ) ;
42
45
43
- compiler . options . module . rules . forEach ( ( rule : RuleSetRule ) => {
44
- // next-image-loader fix which adds remote's hostname to the assets url
45
- if ( options . enableImageLoaderFix && hasLoader ( rule , 'next-image-loader' ) ) {
46
- injectRuleLoader ( rule , {
47
- loader : require . resolve ( '../../loaders/fixImageLoader' ) ,
48
- } ) ;
49
- }
46
+ compiler . options . module . rules . forEach ( ( rule ) => {
47
+ if ( typeof rule === 'object' && rule !== null ) {
48
+ const typedRule = rule as RuleSetRule ;
49
+ // next-image-loader fix which adds remote's hostname to the assets url
50
+ if (
51
+ options . enableImageLoaderFix &&
52
+ hasLoader ( typedRule , 'next-image-loader' )
53
+ ) {
54
+ injectRuleLoader ( typedRule , {
55
+ loader : require . resolve ( '../../loaders/fixImageLoader' ) ,
56
+ } ) ;
57
+ }
50
58
51
- // url-loader fix for which adds remote's hostname to the assets url
52
- if ( options . enableUrlLoaderFix && hasLoader ( rule , 'url-loader' ) ) {
53
- injectRuleLoader ( rule , {
54
- loader : require . resolve ( '../../loaders/fixUrlLoader' ) ,
55
- } ) ;
59
+ if ( options . enableUrlLoaderFix && hasLoader ( typedRule , ' url-loader' ) ) {
60
+ injectRuleLoader ( typedRule , {
61
+ loader : require . resolve ( '../../loaders/fixUrlLoader' ) ,
62
+ } ) ;
63
+ }
56
64
}
57
65
} ) ;
58
66
@@ -80,7 +88,6 @@ export const applyPathFixes = (
80
88
matchCopy = { ...match } ;
81
89
}
82
90
83
- // Create the first new rule using descriptionData
84
91
const descriptionDataRule : RuleSetRule = {
85
92
...matchCopy ,
86
93
descriptionData : {
@@ -90,7 +97,6 @@ export const applyPathFixes = (
90
97
include : undefined ,
91
98
} ;
92
99
93
- // Create the second new rule using test on regex for /runtimePlugin/
94
100
const testRule : RuleSetRule = {
95
101
...matchCopy ,
96
102
resourceQuery : / r u n t i m e P l u g i n / ,
@@ -99,10 +105,10 @@ export const applyPathFixes = (
99
105
} ;
100
106
101
107
const oneOfRule = compiler . options . module . rules . find (
102
- ( rule : RuleSetRule ) => {
103
- return rule && typeof rule === 'object' && 'oneOf' in rule ;
108
+ ( rule ) : rule is RuleSetRule => {
109
+ return ! ! rule && typeof rule === 'object' && 'oneOf' in rule ;
104
110
} ,
105
- ) as RuleSetRule ;
111
+ ) as RuleSetRule | undefined ;
106
112
107
113
if ( ! oneOfRule ) {
108
114
compiler . options . module . rules . unshift ( {
0 commit comments