packageApitoStorageJson static method
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(),
});
}