generateMainImportFile method

String generateMainImportFile()

This section generates the messages_all.dart file based on the list of allLocales.

Implementation

String generateMainImportFile() {
  clearOutput();
  output.write(mainPrologue);
  for (var locale in allLocales) {
    var baseFile = '${generatedFilePrefix}messages_$locale.dart';
    var file = importForGeneratedFile(baseFile);
    output.write("import '$file' ");
    if (useDeferredLoading) output.write("deferred ");
    output.write("as ${libraryName(locale)};\n");
  }
  output.write("\n");
  output.write("typedef Future<dynamic> LibraryLoader();\n");
  output.write("Map<String, LibraryLoader> _deferredLibraries = {\n");
  for (var rawLocale in allLocales) {
    var locale = Intl.canonicalizedLocale(rawLocale);
    var loadOperation = (useDeferredLoading)
        ? "  '$locale': ${libraryName(locale)}.loadLibrary,\n"
        : "  '$locale': () => Future.value(null),\n";
    output.write(loadOperation);
  }
  output.write("};\n");
  output.write("\nMessageLookupByLibrary? _findExact(String localeName) {\n"
      "  switch (localeName) {\n");
  for (var rawLocale in allLocales) {
    var locale = Intl.canonicalizedLocale(rawLocale);
    output.write(
        "    case '$locale':\n      return ${libraryName(locale)}.messages;\n");
  }
  output.write(closing);
  return output.toString();
}