UNPKG

@iot9x.com/nestjs-ucpaas-sms

Version:

nestjs 云之讯平台短信集成插件

105 lines (104 loc) 4.3 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 UcpaasCoreModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.UcpaasCoreModule = void 0; const axios_1 = require("@nestjs/axios"); const common_1 = require("@nestjs/common"); const common_constant_1 = require("./constants/common.constant"); const send_service_1 = require("./services/send.service"); const status_service_1 = require("./services/status.service"); const template_service_1 = require("./services/template.service"); const regex_util_1 = require("./utils/regex.util"); let UcpaasCoreModule = UcpaasCoreModule_1 = class UcpaasCoreModule { /** * 同步方式配置 * @param options 配置信息 * @returns 动态模块 */ static forRoot(options) { return { module: UcpaasCoreModule_1, imports: [ axios_1.HttpModule.register({ headers: { 'Content-Type': 'application/json;charset=utf-8', Accept: 'application/json' } }) ], providers: [send_service_1.UcpaasSendService, status_service_1.UcpaasStatusService, template_service_1.UcpaasTemplateService, regex_util_1.RegexUtil, { provide: common_constant_1.OPTIONS_PROVIDER, useValue: options }], exports: [send_service_1.UcpaasSendService, status_service_1.UcpaasStatusService, template_service_1.UcpaasTemplateService] }; } /** * 异步方式配置 * @param options 配置信息 * @returns 动态模块 */ static forRootAsync(options) { const asyncProviders = this.createAsyncProviders(options); return { module: UcpaasCoreModule_1, imports: [ ...(options.imports || []), axios_1.HttpModule.register({ headers: { 'Content-Type': 'application/json;charset=utf-8', Accept: 'application/json' } }) ], providers: [...asyncProviders, send_service_1.UcpaasSendService, status_service_1.UcpaasStatusService, template_service_1.UcpaasTemplateService, regex_util_1.RegexUtil], exports: [send_service_1.UcpaasSendService, status_service_1.UcpaasStatusService, template_service_1.UcpaasTemplateService] }; } /** * 创建异步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.createUcpaasOptions(), inject }; } }; UcpaasCoreModule = UcpaasCoreModule_1 = __decorate([ (0, common_1.Global)(), (0, common_1.Module)({}) ], UcpaasCoreModule); exports.UcpaasCoreModule = UcpaasCoreModule;