generateFlutterClass function

Future<GenerateResult> generateFlutterClass({
  1. required File iconMap,
  2. required String className,
  3. required String? packageName,
  4. String indent = ' ',
})

Implementation

Future<GenerateResult> generateFlutterClass({
  required File iconMap,
  required String className,
  required String? packageName,
  String indent = '  ',
}) async {
  final Map<String, dynamic> icons = jsonDecode(await iconMap.readAsString());

  final dartIconsEntries = icons.entries.map(
    (entry) => someReplace(
      template.icon
          .replaceFirst('%ICON_NAME%', ReCase(entry.key).camelCase)
          .replaceFirst('%ICON_CODE%', entry.value.replaceAll('\\', '')),
      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);
}