@@ -2,7 +2,7 @@ use std::path::PathBuf;
2
2
use std:: sync:: Arc ;
3
3
4
4
use atlaspack_config:: atlaspack_rc_config_loader:: { AtlaspackRcConfigLoader , LoadConfigOptions } ;
5
- use atlaspack_core:: asset_graph:: { AssetGraph , AssetNode } ;
5
+ use atlaspack_core:: asset_graph:: { AssetGraph , AssetGraphNode , AssetNode } ;
6
6
use atlaspack_core:: config_loader:: ConfigLoader ;
7
7
use atlaspack_core:: plugin:: { PluginContext , PluginLogger , PluginOptions } ;
8
8
use atlaspack_core:: types:: AtlaspackOptions ;
@@ -128,7 +128,7 @@ impl Atlaspack {
128
128
129
129
let asset_graph = match request_result {
130
130
RequestResult :: AssetGraph ( result) => {
131
- self . commit_assets ( result. graph . assets . as_slice ( ) ) ?;
131
+ self . commit_assets ( result. graph . nodes ( ) . collect ( ) ) ?;
132
132
133
133
result. graph
134
134
}
@@ -139,10 +139,14 @@ impl Atlaspack {
139
139
} )
140
140
}
141
141
142
- fn commit_assets ( & self , assets : & [ AssetNode ] ) -> anyhow:: Result < ( ) > {
142
+ fn commit_assets ( & self , assets : Vec < & AssetGraphNode > ) -> anyhow:: Result < ( ) > {
143
143
let mut txn = self . db . environment ( ) . write_txn ( ) ?;
144
144
145
- for AssetNode { asset, .. } in assets. iter ( ) {
145
+ for asset_node in assets {
146
+ let AssetGraphNode :: Asset ( AssetNode { asset, .. } ) = asset_node else {
147
+ continue ;
148
+ } ;
149
+
146
150
self . db . put ( & mut txn, & asset. id , asset. code . bytes ( ) ) ?;
147
151
if let Some ( map) = & asset. map {
148
152
// TODO: For some reason to_buffer strips data when rkyv was upgraded, so now we use json
@@ -185,25 +189,26 @@ mod tests {
185
189
rpc ( ) ,
186
190
) ?;
187
191
188
- let assets = [ "foo" , "bar" , "baz" ] ;
189
-
190
- atlaspack. commit_assets (
191
- & assets
192
- . iter ( )
193
- . enumerate ( )
194
- . map ( |( idx, asset) | AssetNode {
192
+ let assets_names = [ "foo" , "bar" , "baz" ] ;
193
+ let assets = assets_names
194
+ . iter ( )
195
+ . enumerate ( )
196
+ . map ( |( idx, asset) | {
197
+ AssetGraphNode :: Asset ( AssetNode {
195
198
asset : Asset {
196
199
id : idx. to_string ( ) ,
197
200
code : Code :: from ( asset. to_string ( ) ) ,
198
201
..Asset :: default ( )
199
202
} ,
200
203
requested_symbols : HashSet :: new ( ) ,
201
204
} )
202
- . collect :: < Vec < AssetNode > > ( ) ,
203
- ) ?;
205
+ } )
206
+ . collect :: < Vec < AssetGraphNode > > ( ) ;
207
+
208
+ atlaspack. commit_assets ( assets. iter ( ) . collect ( ) ) ?;
204
209
205
210
let txn = db. environment ( ) . read_txn ( ) ?;
206
- for ( idx, asset) in assets . iter ( ) . enumerate ( ) {
211
+ for ( idx, asset) in assets_names . iter ( ) . enumerate ( ) {
207
212
let entry = db. get ( & txn, & idx. to_string ( ) ) ?;
208
213
assert_eq ! ( entry, Some ( asset. to_string( ) . into( ) ) ) ;
209
214
}
0 commit comments