Add configuration provider and simple provider functions
This commit is contained in:
4
lib/configuration_provider.dart
Normal file
4
lib/configuration_provider.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
abstract class ConfigurationProvider {
|
||||
bool containsKey(String key);
|
||||
String? getOrNull(String key, {String? defaultValue});
|
||||
}
|
||||
22
lib/simple_configuration_provider.dart
Normal file
22
lib/simple_configuration_provider.dart
Normal file
@@ -0,0 +1,22 @@
|
||||
import 'package:configurable/configuration_provider.dart';
|
||||
|
||||
class SimpleConfigurationProvider implements ConfigurationProvider {
|
||||
Map<String, String?> configs = {};
|
||||
|
||||
@override
|
||||
String? getOrNull(String key, {String? defaultValue}) {
|
||||
var value = configs[key];
|
||||
|
||||
if (value == null) {
|
||||
configs[key] = defaultValue;
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
@override
|
||||
bool containsKey(String key) {
|
||||
return configs.containsKey(key);
|
||||
}
|
||||
}
|
||||
26
lib/system_config.dart
Normal file
26
lib/system_config.dart
Normal file
@@ -0,0 +1,26 @@
|
||||
import 'package:configurable/configuration_provider.dart';
|
||||
import 'package:configurable/simple_configuration_provider.dart';
|
||||
|
||||
class SystemConfig {
|
||||
static ConfigurationProvider? provider;
|
||||
|
||||
static void setProvider(ConfigurationProvider provider) {
|
||||
SystemConfig.provider = provider;
|
||||
}
|
||||
|
||||
static ConfigurationProvider getProvider() {
|
||||
if (provider == null) {
|
||||
setProvider(SimpleConfigurationProvider());
|
||||
}
|
||||
|
||||
return provider!;
|
||||
}
|
||||
|
||||
static String get(String key, {String? defaultValue}) {
|
||||
return getOrNull(key, defaultValue: defaultValue)!;
|
||||
}
|
||||
|
||||
static String? getOrNull(String key, {String? defaultValue}) {
|
||||
return getProvider().getOrNull(key);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user