mirror of
https://github.com/Uuttssaavv/flutter-clean-architecture-riverpod.git
synced 2025-08-06 16:19:42 +08:00
41 lines
1.3 KiB
Dart
41 lines
1.3 KiB
Dart
// ignore_for_file: constant_identifier_names, use_setters_to_change_properties, avoid_classes_with_only_static_members
|
|
enum AppEnvironment { DEV, STAGING, PROD }
|
|
|
|
abstract class EnvInfo {
|
|
static AppEnvironment _environment = AppEnvironment.DEV;
|
|
|
|
static void initialize(AppEnvironment environment) {
|
|
EnvInfo._environment = environment;
|
|
}
|
|
|
|
static String get appName => _environment._appTitle;
|
|
static String get envName => _environment._envName;
|
|
static String get connectionString => _environment._connectionString;
|
|
static AppEnvironment get environment => _environment;
|
|
static bool get isProduction => _environment == AppEnvironment.PROD;
|
|
}
|
|
|
|
extension _EnvProperties on AppEnvironment {
|
|
static const _appTitles = {
|
|
AppEnvironment.DEV: 'Q Flutter TDD Dev',
|
|
AppEnvironment.STAGING: 'Q Flutter TDD Staging',
|
|
AppEnvironment.PROD: 'Q Flutter TDD',
|
|
};
|
|
|
|
static const _connectionStrings = {
|
|
AppEnvironment.DEV: 'https://api.spoonacular.com',
|
|
AppEnvironment.STAGING: 'https://api.spoonacular.com',
|
|
AppEnvironment.PROD: 'https://api.spoonacular.com',
|
|
};
|
|
|
|
static const _envs = {
|
|
AppEnvironment.DEV: 'dev',
|
|
AppEnvironment.STAGING: 'staging',
|
|
AppEnvironment.PROD: 'prod',
|
|
};
|
|
|
|
String get _appTitle => _appTitles[this]!;
|
|
String get _envName => _envs[this]!;
|
|
String get _connectionString => _connectionStrings[this]!;
|
|
}
|