Blueprint.fromJson constructor

Blueprint.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory Blueprint.fromJson(Map<String, dynamic> json) {
  final schemaVersion = json['schemaVersion'] as int;
  if (schemaVersion == 2 || schemaVersion == 3) {
    return Blueprint(
      schemaVersion: schemaVersion,
      projectName: json['projectName'] as String,
      organization: json['organization'] as String,
      destination: json['destination'] as String,
      flutterSdkRequirement: json['flutterSdkRequirement'] as String,
      targetPlatforms: Set<String>.from(json['targetPlatforms'] as Iterable),
      validationProfile: ValidationProfile.values.firstWhere(
        (e) => e.name == json['validationProfile'],
        orElse: () => ValidationProfile.standard,
      ),
      gitPreference: json['gitPreference'] as bool,
      setupMode: json['setupMode'] == null
          ? null
          : SetupMode.values.firstWhere((e) => e.name == json['setupMode']),
      singleSelections: Map<String, String>.from(
        json['singleSelections'] as Map? ?? const {},
      ),
      multiSelections: {
        for (final entry
            in (json['multiSelections'] as Map? ?? const {}).entries)
          entry.key as String: List<String>.from(entry.value as Iterable),
      },
    );
  }
  return Blueprint(
    schemaVersion: schemaVersion,
    projectName: json['projectName'] as String,
    description: json['description'] as String,
    organization: json['organization'] as String,
    destination: json['destination'] as String,
    flutterSdkRequirement: json['flutterSdkRequirement'] as String,
    targetPlatforms: Set<String>.from(json['targetPlatforms'] as Iterable),
    recipeId: json['recipeId'] as String,
    recipeVersion: json['recipeVersion'] as String,
    engineVersion: json['engineVersion'] as String,
    integrations: Set<String>.from(json['integrations'] as Iterable),
    validationProfile: ValidationProfile.values.firstWhere(
      (e) => e.name == json['validationProfile'],
      orElse: () => ValidationProfile.standard,
    ),
    gitPreference: json['gitPreference'] as bool,
    toolchainPolicy: Map<String, dynamic>.from(
      json['toolchainPolicy'] as Map,
    ),
  );
}