generateCode function

Future<int> generateCode({
  1. required String name,
  2. required List<FgenTemplate> templatesToUse,
})

Generate code for a given name, returns 0 if successful, -1 if not

Implementation

Future<int> generateCode({
  required String name,
  required List<FgenTemplate> templatesToUse,
}) async {
  if (name.isEmpty) {
    print('Name cannot be empty');
    return -1;
  }
  if (templatesToUse.isEmpty) {
    print('No code to generate');
    return -1;
  }
  final pubspec = PubspecUtils.getPubspecFromFolder(Directory.current.path);
  var exitCode = 0;
  for (final template in templatesToUse) {
    if (template.templateFiles.isEmpty) {
      print('ERROR: No template files found for ${template.name}');
      exitCode = 2;
      continue;
    }
    for (final templateFile in template.templateFiles.entries) {
      final success = await CodeGenerator.generate(
        name: name,
        template: template,
        templateFile: templateFile.key,
        fileSuffix: templateFile.value,
        pubspec: pubspec,
        usedTemplates: templatesToUse.map((e) => e.name).toList(),
      );
      if (success != 0) {
        exitCode = success;
      }
    }
  }
  return exitCode;
}