renderManifest function

String renderManifest(
  1. NativePrebuiltConfig config,
  2. PrebuiltManifest manifest,
  3. String tag
)

Implementation

String renderManifest(
  NativePrebuiltConfig config,
  PrebuiltManifest manifest,
  String tag,
) {
  final b = StringBuffer()
    ..writeln('// GENERATED CODE - DO NOT MODIFY BY HAND.')
    ..writeln(
      '// ignore_for_file: constant_identifier_names, depend_on_referenced_packages',
    )
    ..writeln()
    ..writeln("import 'package:native_prebuilt/native_prebuilt.dart';")
    ..writeln()
    ..writeln('const ${config.package}Prebuilts = PrebuiltManifest(')
    ..writeln('  schemaVersion: ${manifest.schemaVersion},')
    ..writeln(
      '  release: ${renderReleaseSource(config.release.toReleaseSource().withTag(tag))},',
    )
    ..writeln('  artifacts: {');

  for (final entry in manifest.artifacts.entries) {
    final platform = entry.key;
    final artifact = entry.value;
    b.writeln("    '$platform': PrebuiltArtifact(");
    b.writeln("      archiveName: '${artifact.archiveName}',");
    b.writeln("      archiveSha256: '${artifact.archiveSha256}',");
    b.writeln("      payloadSha256: '${artifact.payloadSha256}',");
    b.writeln('      payload: ${renderPayload(artifact.payload)},');
    b.writeln('    ),');
  }

  b
    ..writeln('  },')
    ..writeln(');')
    ..writeln();
  return b.toString();
}