library EasyDartModule; import 'package:EasyDartModule/base/database/DataBase.dart'; import 'package:EasyDartModule/base/database/impl/MongoDb.dart'; import 'package:EasyDartModule/base/discovery/Discovery.dart'; import 'package:EasyDartModule/base/discovery/impl/NacosDiscovery.dart'; import 'package:EasyDartModule/base/http/TraceDio.dart'; import 'package:EasyDartModule/base/logger/Logger.dart'; import 'package:EasyDartModule/base/logger/impl/LokiLogger.dart'; import 'package:EasyDartModule/base/mqtt/mqtt.dart'; import 'package:EasyDartModule/base/redis/redis.dart'; import 'package:EasyDartModule/base/storage/Storage.dart'; import 'package:EasyDartModule/base/storage/impl/MinIoStorage.dart'; import 'package:EasyDartModule/base/webserver/WebServer.dart'; import 'package:EasyDartModule/base/webserver/impl/ShelfWebServer.dart' if (dart.library.html) 'package:EasyDartModule/base/webserver/impl/ShelfWebServer_none.dart'; import 'package:EasyDartModule/base/websocket/WebSocket.dart'; import 'package:event_bus/event_bus.dart'; export 'package:shelf/shelf.dart'; export 'package:mongo_dart/mongo_dart.dart'; export 'package:EasyDartModule/base/language/extensions/StringExt.dart' if (dart.library.html) 'package:EasyDartModule/base/language/extensions/StringExtNop.dart'; // const bool enableTr = bool.fromEnvironment('edm.tr.enable',defaultValue: true); class EasyDartModule { static Discovery get discovery => Discovery.getInstance(); static DataBase get dataBase => DataBase.getInstance(); static WebServer get webServer => WebServer.getInstance(); static Logger get logger => Logger.getInstance(); static TraceDio get dio => TraceDio.getInstance(); static Mqtt get mqtt => Mqtt.getInstance(); static Storage get storage => Storage.getInstance(); static Redis get redis => Redis.getInstance(); static WebSocket get websocket => WebSocket.getInstance(); // 全局事件总线 static final EventBus _eventBus = EventBus(); static EventBus get eventBus => _eventBus; static bool init({ DiscoveryConfig? discoveryConfig, DataBaseConfig? dataBaseConfig, LoggerConfig? loggerConfig, MqttConfig? mqttConfig, StorageConfig? storageConfig, RedisConfig? redisConfig, WebSocketConfig? webSocketConfig, }) { if (discoveryConfig != null) { //nacos注册配置中心 Discovery.setInstance(NacosDiscovery(discoveryConfig)); } if (dataBaseConfig != null) { //mongo数据库 DataBase.setInstance(MongoDb(dataBaseConfig)); } if (mqttConfig != null) { //mqtt Mqtt.setInstance(Mqtt(mqttConfig)); mqtt.connect(); } if (storageConfig != null) { //s3存储 Storage.setInstance(MinioStorage(storageConfig)); } if (redisConfig != null) { Redis.setInstance(Redis(redisConfig)); redis.connect(); } if (loggerConfig != null) { //初始化日志 Logger.setInstance(LokiLogger(loggerConfig)); //web服务器 WebServer.setInstance(ShelfWebServer(logger)); //Dio组件 TraceDio.setInstance(TraceDio(logger)); } else { //无日志Dio TraceDio.setInstance(TraceDio(null)); } if (webSocketConfig != null) { WebSocket.setInstance(WebSocket(webSocketConfig)); websocket.connect(); } return true; } }