UNPKG

@lantsang/nestjs-tdengine

Version:

NestJS TDengine 驱动

171 lines (170 loc) 7.07 kB
"use strict"; 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;