@@ -125,9 +125,15 @@ export function getModuleDependencies(id: string, rendererContext: RendererConte
125
125
// Resolve nested dependencies and merge
126
126
for ( const depId of meta . imports || [ ] ) {
127
127
const depDeps = getModuleDependencies ( depId , rendererContext )
128
- Object . assign ( dependencies . styles , depDeps . styles )
129
- Object . assign ( dependencies . preload , depDeps . preload )
130
- Object . assign ( dependencies . prefetch , depDeps . prefetch )
128
+ for ( const key in depDeps . styles ) {
129
+ dependencies . styles [ key ] = depDeps . styles [ key ]
130
+ }
131
+ for ( const key in depDeps . preload ) {
132
+ dependencies . preload [ key ] = depDeps . preload [ key ]
133
+ }
134
+ for ( const key in depDeps . prefetch ) {
135
+ dependencies . prefetch [ key ] = depDeps . prefetch [ key ]
136
+ }
131
137
}
132
138
const filteredPreload : ModuleDependencies [ 'preload' ] = { }
133
139
for ( const id in dependencies . preload ) {
@@ -142,7 +148,13 @@ export function getModuleDependencies(id: string, rendererContext: RendererConte
142
148
}
143
149
144
150
export function getAllDependencies ( ids : Set < string > , rendererContext : RendererContext ) : ModuleDependencies {
145
- const cacheKey = Array . from ( ids ) . sort ( ) . join ( ',' )
151
+ let cacheKey = ''
152
+ const sortedIds = [ ...ids ] . sort ( )
153
+ for ( let i = 0 ; i < sortedIds . length ; i ++ ) {
154
+ if ( i > 0 ) cacheKey += ','
155
+ cacheKey += sortedIds [ i ]
156
+ }
157
+
146
158
if ( rendererContext . _dependencySets [ cacheKey ] ) {
147
159
return rendererContext . _dependencySets [ cacheKey ]
148
160
}
@@ -156,16 +168,30 @@ export function getAllDependencies(ids: Set<string>, rendererContext: RendererCo
156
168
157
169
for ( const id of ids ) {
158
170
const deps = getModuleDependencies ( id , rendererContext )
159
- Object . assign ( allDeps . scripts , deps . scripts )
160
- Object . assign ( allDeps . styles , deps . styles )
161
- Object . assign ( allDeps . preload , deps . preload )
162
- Object . assign ( allDeps . prefetch , deps . prefetch )
171
+ for ( const key in deps . scripts ) {
172
+ allDeps . scripts [ key ] = deps . scripts [ key ]
173
+ }
174
+ for ( const key in deps . styles ) {
175
+ allDeps . styles [ key ] = deps . styles [ key ]
176
+ }
177
+ for ( const key in deps . preload ) {
178
+ allDeps . preload [ key ] = deps . preload [ key ]
179
+ }
180
+ for ( const key in deps . prefetch ) {
181
+ allDeps . prefetch [ key ] = deps . prefetch [ key ]
182
+ }
163
183
164
184
for ( const dynamicDepId of rendererContext . manifest ?. [ id ] ?. dynamicImports || [ ] ) {
165
185
const dynamicDeps = getModuleDependencies ( dynamicDepId , rendererContext )
166
- Object . assign ( allDeps . prefetch , dynamicDeps . scripts )
167
- Object . assign ( allDeps . prefetch , dynamicDeps . styles )
168
- Object . assign ( allDeps . prefetch , dynamicDeps . preload )
186
+ for ( const key in dynamicDeps . scripts ) {
187
+ allDeps . prefetch [ key ] = dynamicDeps . scripts [ key ]
188
+ }
189
+ for ( const key in dynamicDeps . styles ) {
190
+ allDeps . prefetch [ key ] = dynamicDeps . styles [ key ]
191
+ }
192
+ for ( const key in dynamicDeps . preload ) {
193
+ allDeps . prefetch [ key ] = dynamicDeps . preload [ key ]
194
+ }
169
195
}
170
196
}
171
197
0 commit comments