generateStringResources function

void generateStringResources({
  1. required String input,
  2. required String output,
  3. String? package,
  4. String? flavor,
})

Implementation

void generateStringResources({
  required String input,
  required String output,
  String? package,
  String? flavor,
}) {
  Logger.verboseLog('Generating string resources...');
  final directory = Directory(input);
  if (!directory.existsSync()) {
    Logger.verboseLog('translations/ folder is not exist. Skipping...');
    return;
  }
  final buffer = StringBuffer();
  _writeStart(buffer, flavor);
  try {
    final file = directory.listSync().firstWhere(
      (element) {
        return element is File &&
            extension(element.unixPath) == '.json' &&
            !element.isHidden;
      },
    ) as File;
    final line = file.readAsStringSync();
    final map = (json.decode(line) as Map).map((key, value) {
      return MapEntry(key.toString(), value);
    });
    _recurse(buffer, 2, map);
  } catch (_) {
    Logger.log('Invalid string resources detected!');
    Logger.verboseLog(_);
  }
  _writeFinish(buffer);
  Directory(join(output, flavor)).createSync(recursive: true);
  File(joinAll([output, flavor, 'string_resources.dart'].whereType<String>()))
    ..createSync()
    ..writeAsStringSync(buffer.toString());
  Logger.verboseLog('Generated string resources!');
}