doGenerate function

void doGenerate(
  1. Directory input,
  2. Directory output
)

Implementation

void doGenerate(Directory input, Directory output) {
  final loader = JSONLoader();
  final records = loader.load(input);
  checkMissingKey(records);

  final icuParser = ICUParser();
  final intlGenerator = IntlGenerator();
  final Map<String, List<String>> localizedMessage = {};
  for (final record in records) {
    final messages = record.records.entries.map((it) {
      try {
        final ats = icuParser.parse(it.value);
        final msg = intlGenerator.generate(it.key, ats);
        return msg;
      } on ParserException catch (e) {
        throw GenerateException(it.key, e);
      }
    }).toList();
    localizedMessage[record.locale] = messages;
  }
  final fileGenerator = AppLocalizedFileGenerator();
  final fileContent = fileGenerator.generate(localizedMessage);

  if (!output.existsSync()) {
    output.createSync();
  }
  File(output.path + '/localization.dart').writeAsStringSync(fileContent);
}