Files
easy_dart_module/lib/EasyDartModule.dart

86 lines
3.0 KiB
Dart

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';
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;
}
}