generateValueResources function

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

Implementation

void generateValueResources({
  required String input,
  required String output,
  String? package,
}) {
  print('Generating value resources...');
  final directory = Directory(input);
  if (!directory.existsSync()) {
    print('values/ folder is not exist. Skipping...');
    return;
  }
  final buffer = StringBuffer(
    """// ignore_for_file: non_constant_identifier_names
part of 'resources.dart';

const _valueResources = (\n""",
  );
  try {
    final files = directory
        .listSync()
        .where(
          (element) => element is File && extension(element.path) == '.json',
        )
        .cast<File>()
        .toList()
      ..sort((a, b) => basename(a.path).compareTo(basename(b.path)));
    for (var file in files) {
      final line = file.readAsStringSync();
      final object = json.decode(line);
      buffer.write('  ${basenameWithoutExtension(file.path)}: ');
      if (object is Map) {
        _genMap(buffer, 4, object.map((key, value) => MapEntry(key, value)));
      }
      buffer.write(',\n');
    }
  } catch (_) {}
  buffer.writeln(');');
  Directory(output).createSync(recursive: true);
  File('$output/value_resources.dart')
    ..createSync()
    ..writeAsStringSync(buffer.toString());
  print('Generated values resources!');
}