generateFlutterClass function
Implementation
Future<GenerateResult> generateFlutterClass({
required File iconMap,
required String className,
required String? packageName,
required String namingStrategy,
String indent = ' ',
}) async {
final Map<String, dynamic> icons = jsonDecode(await iconMap.readAsString());
final dartIconsEntries = icons.entries.map(
(entry) => someReplace(
template.icon
.replaceFirst(
'%ICON_NAME%',
namingStrategy == 'snake'
? ReCase(entry.key).snakeCase
: ReCase(entry.key).camelCase,
)
.replaceFirst(
'%ICON_CODE%', entry.value.toRadixString(16).toString()),
className: className,
indent: indent,
),
);
return GenerateResult(
someReplace(
template.base
.replaceFirst(
'%PACKAGE%',
packageName == null
? ''
: someReplace(
template.package
.replaceFirst('%PACKAGE_NAME%', packageName),
className: className,
indent: indent,
),
)
.replaceFirst('%CONTENT%', dartIconsEntries.join('\n')),
className: className,
indent: indent,
),
icons.length);
}