Skip to content

Commit 643bc88

Browse files
committed
use map to list
1 parent 88c9890 commit 643bc88

File tree

4 files changed

+50
-15
lines changed

4 files changed

+50
-15
lines changed

example/lib/gen/assets.gen.dart

Lines changed: 36 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/pubspec.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ dependencies:
1515

1616
flutter_svg: ^0.18.1
1717

18-
1918
dev_dependencies:
2019
flutter_test:
2120
sdk: flutter

lib/src/generators/assets_generator.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ String generateAssets(File pubspecFile, DartFormatter formatter,
2424
_constructAssetTree(assetRelativePathList).children);
2525
final assetsStaticStatements = <_Statement>[];
2626

27-
final integrations = <Integration, bool>{};
27+
final integrations = <Integration>[];
2828
if (flutterGen != null &&
2929
flutterGen.hasIntegrations &&
3030
flutterGen.integrations.hasFlutterSvg) {
31-
integrations.putIfAbsent(SvgIntegration(), () => false);
31+
integrations.add(SvgIntegration());
3232
}
3333

3434
while (assetTypeQueue.isNotEmpty) {
@@ -64,11 +64,11 @@ String generateAssets(File pubspecFile, DartFormatter formatter,
6464
classesBuffer.writeln(_assetGenImageClassDefinition);
6565

6666
final imports = <String>{'package:flutter/widgets.dart'};
67-
integrations.forEach((integration, enabled) {
68-
if (enabled) {
69-
imports.addAll(integration.requiredImports);
70-
classesBuffer.writeln(integration.classOutput);
71-
}
67+
integrations
68+
.where((integration) => integration.isEnabled)
69+
.forEach((integration) {
70+
imports.addAll(integration.requiredImports);
71+
classesBuffer.writeln(integration.classOutput);
7272
});
7373
for (final package in imports) {
7474
importsBuffer.writeln(import(package));
@@ -125,8 +125,8 @@ AssetType _constructAssetTree(List<String> assetRelativePathList) {
125125
return assetTypeMap['.'];
126126
}
127127

128-
List<_Statement> _createDirectoryClassGenStatements(File pubspecFile,
129-
AssetType assetType, Map<Integration, bool> integrations) {
128+
List<_Statement> _createDirectoryClassGenStatements(
129+
File pubspecFile, AssetType assetType, List<Integration> integrations) {
130130
final statements = assetType.children
131131
.map((child) {
132132
final childAssetAbsolutePath =
@@ -148,9 +148,9 @@ List<_Statement> _createDirectoryClassGenStatements(File pubspecFile,
148148
isConstConstructor: true,
149149
);
150150
} else if (!child.isUnKnownMime) {
151-
for (final integration in integrations.keys) {
151+
for (final integration in integrations) {
152152
if (integration.mime == child.mime) {
153-
integrations[integration] = true;
153+
integration.isEnabled = true;
154154
statement = _Statement(
155155
type: integration.className,
156156
name: child.baseName.camelCase(),

lib/src/generators/integrations/integration.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
abstract class Integration {
2+
3+
bool isEnabled = false;
4+
25
List<String> get requiredImports;
36

47
String get classOutput;

0 commit comments

Comments
 (0)