Settings.fromJson constructor
Settings.fromJson(
- Map json
Implementation
factory Settings.fromJson(Map<dynamic, dynamic> json) {
final serverName = switch (json['server_name']) {
final String name when name.trim().isNotEmpty => name.trim(),
_ => 'Server',
};
if (serverName.contains(RegExp(r'\s'))) {
throw ArgumentError('server_name cannot contain spaces');
}
return Settings(
packageName: json['package_name'] as String? ?? 'client',
serverName: serverName,
integrations: switch (json['integrations']) {
final Map<String, bool> map => map,
final Map<String, bool?> map => map.map(
(key, value) => MapEntry(key, value ?? true),
),
final Map<String, dynamic> map => map.map(
(key, value) => MapEntry(key, switch (value) {
'true' => true,
'false' => false,
true => true,
false => false,
_ => true,
}),
),
_ => const {},
},
scheme: json['scheme'] as String? ?? 'http',
);
}