generateAssets function
Implementation
String generateAssets(
AssetsGenConfig config,
DartFormatter formatter,
) {
if (config.assets.isEmpty) {
throw const InvalidSettingsException(
'The value of "flutter/assets:" is incorrect.');
}
final importsBuffer = StringBuffer();
final classesBuffer = StringBuffer();
final integrations = <Integration>[
if (config.flutterGen.integrations.flutterSvg)
SvgIntegration(config.packageParameterLiteral),
if (config.flutterGen.integrations.flareFlutter) FlareIntegration(),
if (config.flutterGen.integrations.rive) RiveIntegration(),
];
if (config.flutterGen.assets.isDotDelimiterStyle) {
classesBuffer.writeln(_dotDelimiterStyleDefinition(config, integrations));
} else if (config.flutterGen.assets.isSnakeCaseStyle) {
classesBuffer.writeln(_snakeCaseStyleDefinition(config, integrations));
} else if (config.flutterGen.assets.isCamelCaseStyle) {
classesBuffer.writeln(_camelCaseStyleDefinition(config, integrations));
} else {
throw 'The value of "flutter_gen/assets/style." is incorrect.';
}
classesBuffer.writeln(_assetGenImageClassDefinition(
config.packageParameterLiteral,
));
final imports = <String>{'package:flutter/widgets.dart'};
integrations
.where((integration) => integration.isEnabled)
.forEach((integration) {
imports.addAll(integration.requiredImports);
classesBuffer.writeln(integration.classOutput);
});
for (final package in imports) {
importsBuffer.writeln(import(package));
}
final buffer = StringBuffer();
buffer.writeln(header);
buffer.writeln(ignore);
buffer.writeln(importsBuffer.toString());
buffer.writeln(classesBuffer.toString());
return formatter.format(buffer.toString());
}