@@ -88,10 +88,12 @@ enum AssetKind {
88
88
final class AssetBundleEntry {
89
89
const AssetBundleEntry (this .content, {
90
90
required this .kind,
91
+ required this .transformers,
91
92
});
92
93
93
94
final DevFSContent content;
94
95
final AssetKind kind;
96
+ final List <AssetTransformerEntry > transformers;
95
97
96
98
Future <List <int >> contentsAsBytes () => content.contentsAsBytes ();
97
99
}
@@ -264,6 +266,7 @@ class ManifestAssetBundle implements AssetBundle {
264
266
entries[_kAssetManifestJsonFilename] = AssetBundleEntry (
265
267
DevFSStringContent ('{}' ),
266
268
kind: AssetKind .regular,
269
+ transformers: const < AssetTransformerEntry > [],
267
270
);
268
271
final ByteData emptyAssetManifest =
269
272
const StandardMessageCodec ().encodeMessage (< dynamic , dynamic > {})! ;
@@ -272,12 +275,14 @@ class ManifestAssetBundle implements AssetBundle {
272
275
emptyAssetManifest.buffer.asUint8List (0 , emptyAssetManifest.lengthInBytes),
273
276
),
274
277
kind: AssetKind .regular,
278
+ transformers: const < AssetTransformerEntry > [],
275
279
);
276
280
// Create .bin.json on web builds.
277
281
if (targetPlatform == TargetPlatform .web_javascript) {
278
282
entries[_kAssetManifestBinJsonFilename] = AssetBundleEntry (
279
283
DevFSStringContent ('""' ),
280
284
kind: AssetKind .regular,
285
+ transformers: const < AssetTransformerEntry > [],
281
286
);
282
287
}
283
288
return 0 ;
@@ -423,6 +428,7 @@ class ManifestAssetBundle implements AssetBundle {
423
428
entries[variant.entryUri.path] ?? = AssetBundleEntry (
424
429
DevFSFileContent (variantFile),
425
430
kind: variant.kind,
431
+ transformers: variant.transformers,
426
432
);
427
433
}
428
434
}
@@ -456,6 +462,7 @@ class ManifestAssetBundle implements AssetBundle {
456
462
deferredComponentsEntries[componentName]! [variant.entryUri.path] ?? = AssetBundleEntry (
457
463
DevFSFileContent (variantFile),
458
464
kind: AssetKind .regular,
465
+ transformers: variant.transformers,
459
466
);
460
467
}
461
468
}
@@ -471,7 +478,11 @@ class ManifestAssetBundle implements AssetBundle {
471
478
for (final _Asset asset in materialAssets) {
472
479
final File assetFile = asset.lookupAssetFile (_fileSystem);
473
480
assert (assetFile.existsSync (), 'Missing ${assetFile .path }' );
474
- entries[asset.entryUri.path] ?? = AssetBundleEntry (DevFSFileContent (assetFile), kind: asset.kind);
481
+ entries[asset.entryUri.path] ?? = AssetBundleEntry (
482
+ DevFSFileContent (assetFile),
483
+ kind: asset.kind,
484
+ transformers: const < AssetTransformerEntry > [],
485
+ );
475
486
}
476
487
477
488
// Update wildcard directories we can detect changes in them.
@@ -534,6 +545,7 @@ class ManifestAssetBundle implements AssetBundle {
534
545
entries[key] = AssetBundleEntry (
535
546
content,
536
547
kind: assetKind,
548
+ transformers: const < AssetTransformerEntry > [],
537
549
);
538
550
}
539
551
@@ -579,6 +591,7 @@ class ManifestAssetBundle implements AssetBundle {
579
591
hintString: 'copyrightsoftwaretothisinandorofthe' ,
580
592
),
581
593
kind: AssetKind .regular,
594
+ transformers: const < AssetTransformerEntry > [],
582
595
);
583
596
}
584
597
}
@@ -684,6 +697,8 @@ class ManifestAssetBundle implements AssetBundle {
684
697
cache,
685
698
componentAssets,
686
699
assetsEntry.uri,
700
+ flavors: assetsEntry.flavors,
701
+ transformers: assetsEntry.transformers,
687
702
);
688
703
} else {
689
704
_parseAssetFromFile (
@@ -693,6 +708,8 @@ class ManifestAssetBundle implements AssetBundle {
693
708
cache,
694
709
componentAssets,
695
710
assetsEntry.uri,
711
+ flavors: assetsEntry.flavors,
712
+ transformers: assetsEntry.transformers,
696
713
);
697
714
}
698
715
}
@@ -863,6 +880,7 @@ class ManifestAssetBundle implements AssetBundle {
863
880
packageName: packageName,
864
881
attributedPackage: attributedPackage,
865
882
flavors: assetsEntry.flavors,
883
+ transformers: assetsEntry.transformers,
866
884
);
867
885
} else {
868
886
_parseAssetFromFile (
@@ -875,6 +893,7 @@ class ManifestAssetBundle implements AssetBundle {
875
893
packageName: packageName,
876
894
attributedPackage: attributedPackage,
877
895
flavors: assetsEntry.flavors,
896
+ transformers: assetsEntry.transformers,
878
897
);
879
898
}
880
899
}
@@ -900,6 +919,8 @@ class ManifestAssetBundle implements AssetBundle {
900
919
packageName: packageName,
901
920
attributedPackage: attributedPackage,
902
921
assetKind: AssetKind .shader,
922
+ flavors: < String > {},
923
+ transformers: < AssetTransformerEntry > [],
903
924
);
904
925
}
905
926
@@ -914,6 +935,8 @@ class ManifestAssetBundle implements AssetBundle {
914
935
packageName: packageName,
915
936
attributedPackage: attributedPackage,
916
937
assetKind: AssetKind .model,
938
+ flavors: < String > {},
939
+ transformers: < AssetTransformerEntry > [],
917
940
);
918
941
}
919
942
@@ -927,6 +950,8 @@ class ManifestAssetBundle implements AssetBundle {
927
950
packageName,
928
951
attributedPackage,
929
952
assetKind: AssetKind .font,
953
+ flavors: < String > {},
954
+ transformers: < AssetTransformerEntry > [],
930
955
);
931
956
final File baseAssetFile = baseAsset.lookupAssetFile (_fileSystem);
932
957
if (! baseAssetFile.existsSync ()) {
@@ -949,7 +974,8 @@ class ManifestAssetBundle implements AssetBundle {
949
974
Uri assetUri, {
950
975
String ? packageName,
951
976
Package ? attributedPackage,
952
- Set <String >? flavors,
977
+ required Set <String > flavors,
978
+ required List <AssetTransformerEntry > transformers,
953
979
}) {
954
980
final String directoryPath;
955
981
try {
@@ -985,6 +1011,7 @@ class ManifestAssetBundle implements AssetBundle {
985
1011
attributedPackage: attributedPackage,
986
1012
originUri: assetUri,
987
1013
flavors: flavors,
1014
+ transformers: transformers,
988
1015
);
989
1016
}
990
1017
}
@@ -1000,7 +1027,8 @@ class ManifestAssetBundle implements AssetBundle {
1000
1027
String ? packageName,
1001
1028
Package ? attributedPackage,
1002
1029
AssetKind assetKind = AssetKind .regular,
1003
- Set <String >? flavors,
1030
+ required Set <String > flavors,
1031
+ required List <AssetTransformerEntry > transformers,
1004
1032
}) {
1005
1033
final _Asset asset = _resolveAsset (
1006
1034
packageConfig,
@@ -1011,6 +1039,7 @@ class ManifestAssetBundle implements AssetBundle {
1011
1039
assetKind: assetKind,
1012
1040
originUri: originUri,
1013
1041
flavors: flavors,
1042
+ transformers: transformers,
1014
1043
);
1015
1044
1016
1045
_checkForFlavorConflicts (asset, result.keys.toList ());
@@ -1032,6 +1061,8 @@ class ManifestAssetBundle implements AssetBundle {
1032
1061
relativeUri: relativeUri,
1033
1062
package: attributedPackage,
1034
1063
kind: assetKind,
1064
+ flavors: flavors,
1065
+ transformers: transformers,
1035
1066
),
1036
1067
);
1037
1068
}
@@ -1116,7 +1147,8 @@ class ManifestAssetBundle implements AssetBundle {
1116
1147
Package ? attributedPackage, {
1117
1148
Uri ? originUri,
1118
1149
AssetKind assetKind = AssetKind .regular,
1119
- Set <String >? flavors,
1150
+ required Set <String > flavors,
1151
+ required List <AssetTransformerEntry > transformers,
1120
1152
}) {
1121
1153
final String assetPath = _fileSystem.path.fromUri (assetUri);
1122
1154
if (assetUri.pathSegments.first == 'packages'
@@ -1130,6 +1162,7 @@ class ManifestAssetBundle implements AssetBundle {
1130
1162
assetKind: assetKind,
1131
1163
originUri: originUri,
1132
1164
flavors: flavors,
1165
+ transformers: transformers,
1133
1166
);
1134
1167
if (packageAsset != null ) {
1135
1168
return packageAsset;
@@ -1146,6 +1179,7 @@ class ManifestAssetBundle implements AssetBundle {
1146
1179
originUri: originUri,
1147
1180
kind: assetKind,
1148
1181
flavors: flavors,
1182
+ transformers: transformers,
1149
1183
);
1150
1184
}
1151
1185
@@ -1156,6 +1190,7 @@ class ManifestAssetBundle implements AssetBundle {
1156
1190
AssetKind assetKind = AssetKind .regular,
1157
1191
Uri ? originUri,
1158
1192
Set <String >? flavors,
1193
+ List <AssetTransformerEntry >? transformers,
1159
1194
}) {
1160
1195
assert (assetUri.pathSegments.first == 'packages' );
1161
1196
if (assetUri.pathSegments.length > 1 ) {
@@ -1171,6 +1206,7 @@ class ManifestAssetBundle implements AssetBundle {
1171
1206
kind: assetKind,
1172
1207
originUri: originUri,
1173
1208
flavors: flavors,
1209
+ transformers: transformers,
1174
1210
);
1175
1211
}
1176
1212
}
@@ -1193,7 +1229,10 @@ class _Asset {
1193
1229
required this .package,
1194
1230
this .kind = AssetKind .regular,
1195
1231
Set <String >? flavors,
1196
- }): originUri = originUri ?? entryUri, flavors = flavors ?? const < String > {};
1232
+ List <AssetTransformerEntry >? transformers,
1233
+ }) : originUri = originUri ?? entryUri,
1234
+ flavors = flavors ?? const < String > {},
1235
+ transformers = transformers ?? const < AssetTransformerEntry > [];
1197
1236
1198
1237
final String baseDir;
1199
1238
@@ -1214,6 +1253,8 @@ class _Asset {
1214
1253
1215
1254
final Set <String > flavors;
1216
1255
1256
+ final List <AssetTransformerEntry > transformers;
1257
+
1217
1258
File lookupAssetFile (FileSystem fileSystem) {
1218
1259
return fileSystem.file (fileSystem.path.join (baseDir, fileSystem.path.fromUri (relativeUri)));
1219
1260
}
0 commit comments