@lantsang/nestjs-tdengine
Version:
NestJS TDengine 驱动
171 lines (170 loc) • 7.07 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var TDengineCoreModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TDengineCoreModule = void 0;
const common_1 = require("@nestjs/common");
const common_constant_1 = require("./constants/common.constant");
const database_service_1 = require("./services/database.service");
const find_service_1 = require("./services/find.service");
const insert_service_1 = require("./services/insert.service");
const query_service_1 = require("./services/query.service");
const super_table_service_1 = require("./services/super-table.service");
const table_service_1 = require("./services/table.service");
const database_util_1 = require("./utils/database.util");
const find_util_1 = require("./utils/find.util");
const format_util_1 = require("./utils/format.util");
const iric_util_1 = require("./utils/iric.util");
const query_util_1 = require("./utils/query.util");
let TDengineCoreModule = TDengineCoreModule_1 = class TDengineCoreModule {
constructor(options, httpService) {
this.options = options;
this.httpService = httpService;
}
/**
* 同步方式配置
* @param options 配置信息
* @returns 动态模块
*/
static forRoot(options) {
return {
module: TDengineCoreModule_1,
imports: [
common_1.HttpModule.register({
baseURL: options.url,
auth: {
username: options.username,
password: options.password
}
})
],
providers: [
database_service_1.TDengineDatabaseService,
super_table_service_1.TDengineSuperTableService,
table_service_1.TDengineTableService,
query_service_1.TDengineQueryService,
find_service_1.TDengineFindService,
insert_service_1.TDengineInsertService,
iric_util_1.IricUtil,
database_util_1.DatabaseUtil,
query_util_1.QueryUtil,
find_util_1.FindUtil,
format_util_1.FormatUtil,
{ provide: common_constant_1.OPTIONS_PROVIDER, useValue: options }
],
exports: [database_service_1.TDengineDatabaseService, super_table_service_1.TDengineSuperTableService, table_service_1.TDengineTableService, query_service_1.TDengineQueryService, find_service_1.TDengineFindService, insert_service_1.TDengineInsertService]
};
}
/**
* 异步方式配置
* @param options 配置信息
* @returns 动态模块
*/
static forRootAsync(options) {
const asyncProviders = this.createAsyncProviders(options);
return {
module: TDengineCoreModule_1,
imports: [
...(options.imports || []),
common_1.HttpModule.registerAsync({
useFactory: (options) => ({
baseURL: options.url,
auth: {
username: options.username,
password: options.password
}
}),
inject: [common_constant_1.OPTIONS_PROVIDER]
})
],
providers: [
...asyncProviders,
database_service_1.TDengineDatabaseService,
super_table_service_1.TDengineSuperTableService,
table_service_1.TDengineTableService,
query_service_1.TDengineQueryService,
find_service_1.TDengineFindService,
insert_service_1.TDengineInsertService,
iric_util_1.IricUtil,
database_util_1.DatabaseUtil,
query_util_1.QueryUtil,
find_util_1.FindUtil,
format_util_1.FormatUtil
],
exports: [
common_constant_1.OPTIONS_PROVIDER,
database_service_1.TDengineDatabaseService,
super_table_service_1.TDengineSuperTableService,
table_service_1.TDengineTableService,
query_service_1.TDengineQueryService,
find_service_1.TDengineFindService,
insert_service_1.TDengineInsertService
]
};
}
/**
* 创建异步Provider列表
* @param options 异步配置
* @returns Provider列表
*/
static createAsyncProviders(options) {
if (options.useExisting || options.useFactory) {
return [this.createAsyncOptionsProvider(options)];
}
const useClass = options.useClass;
return [
this.createAsyncOptionsProvider(options),
{
provide: useClass,
useClass
}
];
}
/**
* 创建异步Provider
* @param options 异步配置
* @returns Provider
*/
static createAsyncOptionsProvider(options) {
if (options.useFactory) {
return {
provide: common_constant_1.OPTIONS_PROVIDER,
useFactory: options.useFactory,
inject: options.inject || []
};
}
const inject = [options.useClass || options.useExisting];
return {
provide: common_constant_1.OPTIONS_PROVIDER,
useFactory: async (optionsFactory) => await optionsFactory.createMpOptions(),
inject
};
}
onModuleInit() {
const axiosInstance = this.httpService.axiosRef;
axiosInstance.interceptors.request.use(config => {
/* eslint-disable-next-line no-console */
if (this.options.logging)
console.log(config.data);
return config;
});
}
};
TDengineCoreModule = TDengineCoreModule_1 = __decorate([
common_1.Global(),
common_1.Module({}),
__param(0, common_1.Inject(common_constant_1.OPTIONS_PROVIDER)),
__metadata("design:paramtypes", [Object, common_1.HttpService])
], TDengineCoreModule);
exports.TDengineCoreModule = TDengineCoreModule;