ExportArtifactStep.fromMap constructor
Creates an ExportArtifactStep from a YAML-derived map.
Implementation
factory ExportArtifactStep.fromMap(Map<String, dynamic> map) {
final kindString = map['kind'] as String? ?? 'dynamic_library';
final kind = NativeArtifactKind.values.firstWhere(
(k) => k.name == kindString,
orElse: () => NativeArtifactKind.dynamicLibrary,
);
final companions = <NativeArtifactCompanion>[];
if (map['companions'] is List) {
for (final c in map['companions'] as List) {
if (c is Map<String, dynamic>) {
final roleString = c['role'] as String? ?? 'primary';
final role = NativeArtifactRole.values.firstWhere(
(r) => r.name == roleString,
orElse: () => NativeArtifactRole.primary,
);
companions.add(
NativeArtifactCompanion(
path: c['path'] as String,
role: role,
optional: c['optional'] as bool? ?? false,
),
);
}
}
}
final stepId = map['id'] as String;
final artifactId = map['artifact'] as String? ?? stepId;
return ExportArtifactStep(
id: stepId,
declaration: NativeArtifactDeclaration(
id: artifactId,
kind: kind,
primaryPath: map['primary_path'] as String,
companions: companions,
),
);
}