generateValueResources function
void
generateValueResources(
{ - required String input,
- required String output,
- 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!');
}