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();
}