InitConfig.fromMap constructor
InitConfig.fromMap(
- Map map
Creates an FKIT project configuration from the provided map.
Uses default configuration values for settings that are not specified.
Implementation
factory InitConfig.fromMap(Map<dynamic, dynamic> map) {
final fkit = Map<dynamic, dynamic>.from(map['fkit'] ?? const {});
final tooling = Map<dynamic, dynamic>.from(map['tooling'] ?? const {});
final platforms = Map<dynamic, dynamic>.from(map['platforms'] ?? const {});
final build = Map<dynamic, dynamic>.from(map['build'] ?? const {});
final entry = Map<dynamic, dynamic>.from(map['entry'] ?? const {});
final flavoring = Map<dynamic, dynamic>.from(map['flavoring'] ?? const {});
final environment =
Map<dynamic, dynamic>.from(map['environment'] ?? const {});
final firebase = Map<dynamic, dynamic>.from(map['firebase'] ?? const {});
final localization =
Map<dynamic, dynamic>.from(map['localization'] ?? const {});
final generator = Map<dynamic, dynamic>.from(map['generator'] ?? const {});
final flavors = (map['flavors'] as List?)
?.map((flavor) => flavor.toString())
.where((flavor) => flavor.isNotEmpty)
.toList() ??
const <String>[];
final defaultFlavor = flavoring['default']?.toString() ??
(flavors.isNotEmpty ? flavors.first : 'main');
return InitConfig(
version: fkit['version']?.toString() ?? '0.1.1',
projectName: map['project_name']?.toString() ?? '',
useFvm: tooling['use_fvm'] ?? false,
android: platforms['android'] ?? true,
ios: platforms['ios'] ?? true,
web: platforms['web'] ?? false,
flavoringEnabled: flavoring['enabled'] ?? false,
defaultFlavor: defaultFlavor,
flavors: flavors.isEmpty ? const ['main'] : flavors,
environment: EnvironmentConfig.fromMap(environment),
firebase: FirebaseConfig.fromMap(firebase),
localization: LocalizationConfig.fromMap(localization),
debugInfo: build['debug_info']?.toString() ?? './debug-info',
obfuscate: build['obfuscate'] ?? true,
mainEntry: entry['main']?.toString() ?? 'lib/main.dart',
featureDir: generator['feature_dir']?.toString() ?? 'lib/features',
defaultTemplate:
generator['default_template']?.toString() ?? 'riverpod_clean',
);
}