2021-03-24 13:24:40 +07:00
|
|
|
# Dart Configurable Environment
|
2021-03-24 14:21:36 +07:00
|
|
|
- [x] Allow to get property from env file
|
|
|
|
- [x] Cache property for runtime
|
|
|
|
- [x] Dotenv file support (use DotenvConfigurationProvider)
|
|
|
|
- [x] Support functions (getConfig, getConfigOrNull, hasConfigKey)
|
|
|
|
- [x] Support nullsafety (dart 2.12.2+)
|
|
|
|
|
2021-03-24 14:22:56 +07:00
|
|
|
# Example
|
|
|
|
```dart
|
|
|
|
import 'package:configurable/dotenv_configuration_provider.dart';
|
|
|
|
import 'package:configurable/simple_configuration_provider.dart';
|
|
|
|
import 'package:configurable/system_config.dart';
|
|
|
|
|
|
|
|
void main() {
|
|
|
|
var key = 'app.name';
|
|
|
|
var value = 'CUBETIQ Solution';
|
|
|
|
|
|
|
|
// in-memory provider (built-in)
|
|
|
|
var simpleProvider = SimpleConfigurationProvider();
|
|
|
|
SystemConfig.setProvider(simpleProvider);
|
|
|
|
var result1 = SystemConfig.getOrNull(key, defaultValue: value);
|
|
|
|
// output: CUBETIQ Solution
|
|
|
|
print(result1);
|
|
|
|
|
|
|
|
// dotenv provider (from file .env)
|
|
|
|
var dotenvProvider = DotenvConfigurationProvider();
|
|
|
|
SystemConfig.setProvider(dotenvProvider);
|
|
|
|
var result2 = SystemConfig.getOrNull('HOME');
|
|
|
|
|
|
|
|
// output: user's home directory
|
|
|
|
print(result2);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2021-03-24 14:21:36 +07:00
|
|
|
# Contributors
|
|
|
|
- Sambo Chea <sombochea@cubetiqs.com>
|