generateIconFile function
Implementation
String? generateIconFile(String content, String className) {
final document = XmlDocument.parse(content);
final sizes = parseSvgSizeData(document.rootElement);
if (sizes == null) {
return null;
}
final sizeParams = [
Field(
(b) =>
b
..name = "area"
..type = refer("double")
..modifier = FieldModifier.final$
..assignment = Code('${sizes.area}'),
),
Field(
(b) =>
b
..name = "widthOffset"
..type = refer("double")
..modifier = FieldModifier.final$
..assignment = Code('${sizes.widthOffset}'),
),
Field(
(b) =>
b
..name = "heightOffset"
..type = refer("double")
..modifier = FieldModifier.final$
..assignment = Code('${sizes.heightOffset}'),
),
];
final paintingList =
document.rootElement.children
.where((node) => node is XmlElement)
.toList();
final cls = _corePainterClass(
className: className,
sizeParams: sizeParams,
paintMethod: _generatePaintMethod(paintingList),
);
final lib = Library(
(b) =>
b
..directives.addAll([
Directive.import('package:flutter/rendering.dart'),
Directive.import('package:path_drawing/path_drawing.dart'),
Directive.import('dart:math', show: ['sqrt']),
])
..body.addAll([cls]),
);
final emitter = DartEmitter();
return DartFormatter(
languageVersion: DartFormatter.latestLanguageVersion,
).format('${lib.accept(emitter)}');
}