ModelArtifactType.fromJson constructor
ModelArtifactType.fromJson(
- Map<String, dynamic> json
)
Implementation
factory ModelArtifactType.fromJson(Map<String, dynamic> json) {
final type = json['type'] as String?;
switch (type) {
case 'singleFile':
final expected = json['expectedFiles'] != null
? ExpectedModelFiles.fromJson(
json['expectedFiles'] as Map<String, dynamic>)
: ExpectedModelFiles.none;
return SingleFileArtifact(expectedFiles: expected);
case 'archive':
return ArchiveArtifact(
archiveType: ArchiveType.values.firstWhere(
(t) => t.rawValue == json['archiveType'],
orElse: () => ArchiveType.zip,
),
structure: ArchiveStructure.values.firstWhere(
(s) => s.rawValue == json['structure'],
orElse: () => ArchiveStructure.unknown,
),
expectedFiles: json['expectedFiles'] != null
? ExpectedModelFiles.fromJson(
json['expectedFiles'] as Map<String, dynamic>)
: ExpectedModelFiles.none,
);
case 'multiFile':
return MultiFileArtifact(
files: (json['files'] as List<dynamic>)
.map((f) =>
ModelFileDescriptor.fromJson(f as Map<String, dynamic>))
.toList(),
);
case 'custom':
return CustomArtifact(strategyId: json['strategyId'] as String);
case 'builtIn':
return const BuiltInArtifact();
default:
return const SingleFileArtifact();
}
}