Add configuration provider and simple provider functions
This commit is contained in:
commit
57f3cd483e
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
# Files and directories created by pub
|
||||
.dart_tool/
|
||||
.packages
|
||||
|
||||
# Conventional directory for build outputs
|
||||
build/
|
||||
|
||||
# Directory created by dartdoc
|
||||
doc/api/
|
4
CHANGELOG.md
Normal file
4
CHANGELOG.md
Normal file
@ -0,0 +1,4 @@
|
||||
## 1.0.0
|
||||
|
||||
- Initial version, created by Stagehand
|
||||
- Add configurable interface, created by @SomboChea
|
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# Dart Configurable Environment
|
||||
- [ ] Allow to get property from env file
|
||||
- [ ] Cache property for runtime
|
14
analysis_options.yaml
Normal file
14
analysis_options.yaml
Normal file
@ -0,0 +1,14 @@
|
||||
# Defines a default set of lint rules enforced for
|
||||
# projects at Google. For details and rationale,
|
||||
# see https://github.com/dart-lang/pedantic#enabled-lints.
|
||||
include: package:pedantic/analysis_options.yaml
|
||||
|
||||
# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
|
||||
# Uncomment to specify additional rules.
|
||||
# linter:
|
||||
# rules:
|
||||
# - camel_case_types
|
||||
|
||||
analyzer:
|
||||
# exclude:
|
||||
# - path/to/excluded/files/**
|
3
bin/configurable.dart
Normal file
3
bin/configurable.dart
Normal file
@ -0,0 +1,3 @@
|
||||
void main(List<String> arguments) {
|
||||
print('Just, say Hello to You!');
|
||||
}
|
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);
|
||||
}
|
||||
}
|
12
pubspec.lock
Normal file
12
pubspec.lock
Normal file
@ -0,0 +1,12 @@
|
||||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
pedantic:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: pedantic
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
sdks:
|
||||
dart: ">=2.12.0 <3.0.0"
|
13
pubspec.yaml
Normal file
13
pubspec.yaml
Normal file
@ -0,0 +1,13 @@
|
||||
name: configurable
|
||||
description: A simple command-line application.
|
||||
# version: 1.0.0
|
||||
# homepage: https://www.example.com
|
||||
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
|
||||
#dependencies:
|
||||
# path: ^1.7.0
|
||||
|
||||
dev_dependencies:
|
||||
pedantic: ^1.9.0
|
0
test/config_test.dart
Normal file
0
test/config_test.dart
Normal file
Loading…
Reference in New Issue
Block a user