generateValueResources function

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

Implementation

void generateValueResources({
  required String input,
  required String output,
  String? flavor,
}) {
  Logger.verboseLog('Generating value resources...');
  final directory = Directory(input);
  if (!directory.existsSync()) {
    Logger.verboseLog('values/ folder is not exist. Skipping...');
    return;
  }
  final buffer = StringBuffer();
  _genStart(buffer, flavor);
  try {
    final files = directory
        .listSync()
        .where(
          (element) =>
              element is File &&
              extension(element.unixPath) == '.json' &&
              !element.isHidden,
        )
        .cast<File>()
        .toList()
      ..sort(sortFilesByName);
    for (final file in files) {
      final line = file.readAsStringSync();
      final object = json.decode(line);
      buffer.write('  ${safeName(basenameWithoutExtension(file.unixPath))}: ');
      if (object is Map) {
        Writer(buffer).writeRecord(
          4,
          object.map((key, value) => MapEntry(key, value)),
          recursive: false,
        );
      } else if (object is List) {
        Writer(buffer).writeList(4, object);
      } else if (object is String) {
        Writer(buffer).writeString(0, object);
      } else {
        Writer(buffer).writeAny(0, object);
      }
      buffer.write(',\n');
    }
  } catch (_) {}
  _genFinish(buffer, output, flavor);
}