packageApitoStorageJson static method

String packageApitoStorageJson(
  1. PackageApi packageApi, {
  2. bool pretty = false,
})

writes the packageApi to storage (JSON string)

Implementation

static String packageApitoStorageJson(
  PackageApi packageApi, {
  bool pretty = false,
}) {
  final packageApiStorage = _packageApiToStorage(packageApi);
  final encoder = pretty ? JsonEncoder.withIndent('    ') : JsonEncoder();
  return encoder.convert({
    'version': 3,
    'packageApi': packageApiStorage.toJson(),
    'missingEntryPoints':
        packageApi.rootDeclarationsWithoutEntryPointsAndVisibleOutsideTests
            .map((e) => {
                  'type': switch (e) {
                    InterfaceDeclaration() => 'interface',
                    ExecutableDeclaration() => 'executable',
                    FieldDeclaration() => 'field',
                    TypeAliasDeclaration() => 'typeAlias',
                    Declaration() => throw UnimplementedError(),
                  },
                  if (e is InterfaceDeclaration)
                    'usages': e.typeUsages
                        .where((tu) => !tu.isVisibleForTesting)
                        .map((tu) => tu.referringElementName)
                        .toList(),
                  'name': e.name
                })
            .toList(),
  });
}