Dotenv file parser with typed getters and multi-environment support
dart pub add philiprehberger_envDotenv file parser with typed getters and multi-environment support
Add to your pubspec.yaml:
dependencies:
philiprehberger_env: ^0.1.0
Then run:
dart pub get
import 'package:philiprehberger_env/philiprehberger_env.dart';
final env = Env.fromString('PORT=8080\nDEBUG=true');
print(env.getInt('PORT')); // 8080
print(env.getBool('DEBUG')); // true
final content = '''
# Database config
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DEBUG=true
TAGS=web,api,auth
''';
final env = Env.fromString(content);
print(env.getString('DB_HOST')); // localhost
final env = Env.fromString('PORT=8080\nDEBUG=true\nTAGS=a,b,c');
env.getString('PORT'); // "8080"
env.getInt('PORT'); // 8080
env.getBool('DEBUG'); // true
env.getList('TAGS'); // ["a", "b", "c"]
env.getString('MISSING', defaultValue: 'n/a'); // "n/a"
env.has('PORT'); // true
final env = Env.fromString('HOST=localhost\nURL=http://\${HOST}:8080');
print(env.getString('URL')); // http://localhost:8080
final env = Env.fromString('MSG="hello world"\nPATH=\'/usr/bin\'');
print(env.getString('MSG')); // hello world
print(env.getString('PATH')); // /usr/bin
| Method | Description |
|---|---|
Env(Map<String, String> values) | Create an Env from a pre-parsed map |
Env.fromString(String content) | Parse a .env file content string |
getString(String key, {String? defaultValue}) | Get a string value |
getInt(String key, {int? defaultValue}) | Get an integer value |
getBool(String key, {bool? defaultValue}) | Get a boolean (true/1/yes/on) |
getList(String key, {String separator, List<String>? defaultValue}) | Get a list by splitting on separator |
has(String key) | Check if a key exists |
toMap() | Get all values as a map |
DotenvParser.parse(String content) | Parse .env content into a Map<String, String> |
dart pub get
dart analyze --fatal-infos
dart test
If you find this project useful: