app_config_builder.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import 'config_imports.dart';
  2. class AppConfigBuilder {
  3. BasicConfig? _basicConfig;
  4. DNSConfig? _dnsConfig;
  5. TunConfig? _tunConfig;
  6. List<ProxyConfig>? _proxies;
  7. List<ProxyGroup>? _proxyGroups;
  8. List<Rule>? _rules;
  9. AppConfigBuilder setBasicConfig(BasicConfig basicConfig) {
  10. _basicConfig = basicConfig;
  11. return this;
  12. }
  13. AppConfigBuilder setDNSConfig(DNSConfig? dnsConfig) {
  14. _dnsConfig = dnsConfig;
  15. return this;
  16. }
  17. AppConfigBuilder setTunConfig(TunConfig? tunConfig) {
  18. _tunConfig = tunConfig;
  19. return this;
  20. }
  21. AppConfigBuilder setProxies(List<ProxyConfig>? proxies) {
  22. _proxies = proxies;
  23. return this;
  24. }
  25. AppConfigBuilder setProxyGroups(List<ProxyGroup>? proxyGroups) {
  26. _proxyGroups = proxyGroups;
  27. return this;
  28. }
  29. AppConfigBuilder setRules(List<Rule>? rules) {
  30. _rules = rules;
  31. return this;
  32. }
  33. AppConfig build() {
  34. // 默认的值或者抛出异常,取决于您的需求
  35. return AppConfig(
  36. basicConfig: _basicConfig ?? BasicConfig(mixedPort: 9788,allowLan: false,bindAddress: '*',mode: ModeType.rule.name,logLevel: LogLevel.warning.name,externalController: '127.0.0.1:9799',unifiedDelay: false,geodataMode: true,tcpConcurrent: true,findProcessMode: ProcessMode.strict.name,globalClientFingerprint: Fingerprint.chrome.name),
  37. dnsConfig: _dnsConfig,
  38. tunConfig: _tunConfig,
  39. proxies: _proxies ?? [],
  40. proxyGroups: _proxyGroups ?? [],
  41. rules: _rules ?? [],
  42. );
  43. }
  44. }