writeSplit method

void writeSplit(
  1. String outDir
)

Write dist/bundle.<locale>.json + manifest.json.

Implementation

void writeSplit(String outDir) {
  Directory(outDir).createSync(recursive: true);
  final files = <String, dynamic>{};
  perLocale.forEach((locale, data) {
    final payload = '${const JsonEncoder.withIndent('  ').convert(data)}\n';
    final fname = 'bundle.$locale.json';
    File('$outDir/$fname').writeAsStringSync(payload);
    files[locale] = {
      'path': fname,
      'hash': slHash([payload])
    };
  });
  final manifest = {
    'version': 1,
    'source_locale': sourceLocale,
    'locales': locales,
    if (translation != null) 'translation': translation,
    'files': files,
  };
  File('$outDir/manifest.json').writeAsStringSync(
      '${const JsonEncoder.withIndent('  ').convert(manifest)}\n');
}