fix: docker parse (#414)

Fixes #395
This commit is contained in:
lollipopkit🏳️‍⚧️
2024-06-23 18:37:05 +08:00
committed by GitHub
parent 2e9ad7d7cb
commit d6e37b058f
2 changed files with 34 additions and 11 deletions

View File

@@ -72,7 +72,7 @@ final class DockerImg implements ContainerImg {
final String repository;
final String size;
@override
final String tag;
final String? tag;
DockerImg({
required this.containers,
@@ -95,14 +95,30 @@ final class DockerImg implements ContainerImg {
String toRawJson() => json.encode(toJson());
factory DockerImg.fromJson(Map<String, dynamic> json) => DockerImg(
containers: json["Containers"],
factory DockerImg.fromJson(Map<String, dynamic> json) {
final containers = switch (json["Containers"]) {
final String a => a,
final Object? a => a.toString(),
};
final repo = switch (json["Repository"] ?? json["Names"]) {
final String a => a,
final List a => a.firstOrNull.toString(),
final Object? a => a.toString(),
};
final size = switch (json["Size"]) {
final String a => a,
final int a => a.bytes2Str,
final Object? a => a.toString(),
};
return DockerImg(
containers: containers,
createdAt: json["CreatedAt"],
id: json["ID"],
repository: json["Repository"],
size: json["Size"],
id: json["ID"] ?? json["Id"] ?? '',
repository: repo,
size: size,
tag: json["Tag"],
);
}
Map<String, dynamic> toJson() => {
"Containers": containers,