generateConstants method

void generateConstants(
  1. IndentingWriter out
)

Writes Dart constants for the service and message descriptors.

The map includes an entry for every message type that might need to be read or written (assuming the type name resolved).

Implementation

void generateConstants(IndentingWriter out) {
  out.print('const $coreImportPrefix.Map<$coreImportPrefix.String,'
      ' $coreImportPrefix.dynamic> $jsonConstant = ');
  writeJsonConst(out, _descriptor.writeToJsonMap());
  out.println(';');
  out.println();

  var typeConstants = <String, String>{};
  for (var key in _transitiveDeps.keys) {
    typeConstants[key] = _transitiveDeps[key]!.getJsonConstant(fileGen);
  }

  out.println('@$coreImportPrefix.Deprecated'
      '(\'Use $binaryDescriptorName instead\')');
  out.addBlock(
      'const $coreImportPrefix.Map<$coreImportPrefix.String,'
          ' $coreImportPrefix.Map<$coreImportPrefix.String,'
          ' $coreImportPrefix.dynamic>> $messageJsonConstant = const {',
      '};', () {
    for (var key in typeConstants.keys) {
      var typeConst = typeConstants[key];
      out.println("'$key': $typeConst,");
    }
  });
  out.println();

  if (_undefinedDeps.isNotEmpty) {
    for (var name in _undefinedDeps.keys) {
      var location = _undefinedDeps[name];
      out.println("// can't resolve ($name) used by $location");
    }
    out.println();
  }
}