ExportArtifactStep.fromMap constructor

ExportArtifactStep.fromMap(
  1. Map<String, dynamic> map
)

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,
    ),
  );
}