@@ -9,6 +9,7 @@ use turbopack_core::{
9
9
ident:: AssetIdent ,
10
10
module:: Module ,
11
11
module_graph:: ModuleGraph ,
12
+ output:: OutputAssets ,
12
13
reference:: { ModuleReference , ModuleReferences } ,
13
14
reference_type:: ImportContext ,
14
15
resolve:: origin:: ResolveOrigin ,
@@ -22,7 +23,9 @@ use crate::{
22
23
finalize_css, parse_css, process_css_with_placeholder, CssWithPlaceholderResult ,
23
24
FinalCssResult , ParseCss , ParseCssResult , ProcessCss ,
24
25
} ,
25
- references:: { compose:: CssModuleComposeReference , import:: ImportAssetReference } ,
26
+ references:: {
27
+ compose:: CssModuleComposeReference , import:: ImportAssetReference , url:: ReferencedAsset ,
28
+ } ,
26
29
CssModuleAssetType ,
27
30
} ;
28
31
@@ -200,6 +203,22 @@ impl ChunkItem for CssModuleChunkItem {
200
203
fn module ( & self ) -> Vc < Box < dyn Module > > {
201
204
Vc :: upcast ( * self . module )
202
205
}
206
+
207
+ #[ turbo_tasks:: function]
208
+ async fn references ( & self ) -> Result < Vc < OutputAssets > > {
209
+ let mut references = Vec :: new ( ) ;
210
+ if let ParseCssResult :: Ok { url_references, .. } = & * self . module . parse_css ( ) . await ? {
211
+ for ( _, reference) in url_references. await ? {
212
+ if let ReferencedAsset :: Some ( asset) = * reference
213
+ . get_referenced_asset ( * self . chunking_context )
214
+ . await ?
215
+ {
216
+ references. push ( asset) ;
217
+ }
218
+ }
219
+ }
220
+ Ok ( Vc :: cell ( references) )
221
+ }
203
222
}
204
223
205
224
#[ turbo_tasks:: value_impl]
0 commit comments