File tree Expand file tree Collapse file tree 3 files changed +38
-1
lines changed Expand file tree Collapse file tree 3 files changed +38
-1
lines changed Original file line number Diff line number Diff line change @@ -34,7 +34,7 @@ class AssetsGenConfig {
34
34
pubspecFile.parent.absolute.path,
35
35
config.pubspec.packageName,
36
36
config.pubspec.flutterGen,
37
- config.pubspec.flutter.assets ,
37
+ _buildAssetsList ( config) ,
38
38
config.pubspec.flutterGen.assets.exclude.map (Glob .new ).toList (),
39
39
);
40
40
}
@@ -49,6 +49,17 @@ class AssetsGenConfig {
49
49
flutterGen.assets.outputs.packageParameterEnabled ? _packageName : '' ;
50
50
}
51
51
52
+ List <Object > _buildAssetsList (Config config) {
53
+ final List <Object > deferredAssets = [];
54
+ config.pubspec.flutter.deferredComponents? .forEach ((deferredComponent) {
55
+ // Include all manipulated assets to the list of deferred assets.
56
+ deferredAssets.addAll (deferredComponent.assets ?? []);
57
+ });
58
+
59
+ // Merge the deferred assets with the main assets.
60
+ return [...config.pubspec.flutter.assets, ...deferredAssets];
61
+ }
62
+
52
63
String generateAssets (
53
64
AssetsGenConfig config,
54
65
DartFormatter formatter,
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ class Flutter {
29
29
Flutter ({
30
30
required this .assets,
31
31
required this .fonts,
32
+ required this .deferredComponents,
32
33
});
33
34
34
35
@JsonKey (name: 'assets' , required : true )
@@ -37,6 +38,9 @@ class Flutter {
37
38
@JsonKey (name: 'fonts' , required : true )
38
39
final List <FlutterFonts > fonts;
39
40
41
+ @JsonKey (name: 'deferred-components' , required : false )
42
+ final List <FlutterDeferredComponents >? deferredComponents;
43
+
40
44
factory Flutter .fromJson (Map json) => _$FlutterFromJson (json);
41
45
}
42
46
@@ -243,3 +247,19 @@ class FlutterGenElementFontsOutputs extends FlutterGenElementOutputs {
243
247
factory FlutterGenElementFontsOutputs .fromJson (Map json) =>
244
248
_$FlutterGenElementFontsOutputsFromJson (json);
245
249
}
250
+
251
+ class FlutterDeferredComponents {
252
+ FlutterDeferredComponents ({
253
+ required this .name,
254
+ required this .assets,
255
+ });
256
+
257
+ @JsonKey (name: 'name' , required : true )
258
+ final String name;
259
+
260
+ @JsonKey (name: 'assets' , required : false )
261
+ final List <Object >? assets;
262
+
263
+ factory FlutterDeferredComponents .fromJson (Map json) =>
264
+ _$FlutterDeferredComponentsFromJson (json);
265
+ }
You can’t perform that action at this time.
0 commit comments