From 0b6941d5ce27d46590a3b88eb6e2bb3dd494f899 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Mon, 28 Apr 2025 21:55:23 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4autowire=E7=89=B9?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/pipeline/src/decorator/common.ts | 17 -------- packages/core/pipeline/src/decorator/index.ts | 1 - packages/core/pipeline/src/plugin/api.ts | 4 -- .../core/pipeline/src/plugin/decorator.ts | 9 +---- .../plugin-cert/src/dns-provider/api.ts | 3 -- .../plugin-cert/src/dns-provider/base.ts | 2 - .../plugin-cert/src/dns-provider/decorator.ts | 11 +---- .../components/plugins/common/api-test.vue | 6 +-- .../ui/certd-server/export-plugin-yaml.js | 1 - packages/ui/certd-server/src/configuration.ts | 10 ++--- .../src/modules/auto/auto-b-load-plugins.ts | 2 +- .../modules/plugin/service/plugin-service.ts | 10 +++++ packages/ui/certd-server/src/plugins/index.ts | 40 +++++++++---------- .../src/plugins/plugin-51dns/dns-provider.ts | 3 +- .../dns-provider/aliyun-dns-provider.ts | 5 +-- .../plugins/plugin-cloudflare/dns-provider.ts | 3 +- .../src/plugins/plugin-demo/dns-provider.ts | 6 +-- .../src/plugins/plugin-dnsla/dns-provider.ts | 3 +- .../dns-provider/huawei-dns-provider.ts | 3 +- .../plugins/plugin-jdcloud/dns-provider.ts | 3 +- .../plugins/plugin-namesilo/dns-provider.ts | 3 +- .../dns-provider/dnspod-dns-provider.ts | 3 +- .../dns-provider/tencent-dns-provider.ts | 4 +- .../volcengine-dns-provider.ts | 3 +- .../src/plugins/plugin-west/dns-provider.ts | 6 +-- 25 files changed, 55 insertions(+), 106 deletions(-) delete mode 100644 packages/core/pipeline/src/decorator/common.ts diff --git a/packages/core/pipeline/src/decorator/common.ts b/packages/core/pipeline/src/decorator/common.ts deleted file mode 100644 index 0e5942ff..00000000 --- a/packages/core/pipeline/src/decorator/common.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Decorator } from "./index.js"; - -export type AutowireProp = { - name?: string; - type?: any; -}; -export const AUTOWIRE_KEY = "pipeline:autowire"; - -export function Autowire(props?: AutowireProp): PropertyDecorator { - return (target, propertyKey) => { - const _type = Reflect.getMetadata("design:type", target, propertyKey); - target = Decorator.target(target, propertyKey); - props = props || {}; - props.type = _type; - Reflect.defineMetadata(AUTOWIRE_KEY, props || {}, target, propertyKey); - }; -} diff --git a/packages/core/pipeline/src/decorator/index.ts b/packages/core/pipeline/src/decorator/index.ts index f24f345b..05c69e3c 100644 --- a/packages/core/pipeline/src/decorator/index.ts +++ b/packages/core/pipeline/src/decorator/index.ts @@ -1,2 +1 @@ export * from "./utils.js"; -export * from "./common.js"; diff --git a/packages/core/pipeline/src/plugin/api.ts b/packages/core/pipeline/src/plugin/api.ts index e908cab9..ba3dfc89 100644 --- a/packages/core/pipeline/src/plugin/api.ts +++ b/packages/core/pipeline/src/plugin/api.ts @@ -51,10 +51,6 @@ export type PluginDefine = Registrable & { [key: string]: TaskOutputDefine; }; - autowire?: { - [key: string]: any; - }; - shortcut?: { [key: string]: { title: string; diff --git a/packages/core/pipeline/src/plugin/decorator.ts b/packages/core/pipeline/src/plugin/decorator.ts index f9a0c8da..ad77ade8 100644 --- a/packages/core/pipeline/src/plugin/decorator.ts +++ b/packages/core/pipeline/src/plugin/decorator.ts @@ -1,7 +1,6 @@ import { pluginRegistry } from "./registry.js"; import { PluginDefine, TaskInputDefine, TaskOutputDefine } from "./api.js"; import { Decorator } from "../decorator/index.js"; -import { AUTOWIRE_KEY } from "../decorator/index.js"; import "reflect-metadata"; import { merge, sortBy } from "lodash-es"; // 提供一个唯一 key @@ -12,7 +11,6 @@ export function IsTaskPlugin(define: PluginDefine): ClassDecorator { target = Decorator.target(target); const inputs: any = {}; - const autowires: any = {}; const outputs: any = {}; const properties = Decorator.getClassProperties(target); for (const property in properties) { @@ -21,11 +19,6 @@ export function IsTaskPlugin(define: PluginDefine): ClassDecorator { inputs[property] = input; } - const autowire = Reflect.getMetadata(AUTOWIRE_KEY, target, property); - if (autowire) { - autowires[property] = autowire; - } - const output = Reflect.getMetadata(PLUGIN_OUTPUT_KEY, target, property); if (output) { outputs[property] = output; @@ -57,7 +50,7 @@ export function IsTaskPlugin(define: PluginDefine): ClassDecorator { }, }; - define = merge(defaultConfig, define, { input: inputMap, autowire: autowires, output: outputs }); + define = merge(defaultConfig, define, { input: inputMap, output: outputs }); Reflect.defineMetadata(PLUGIN_CLASS_KEY, define, target); diff --git a/packages/plugins/plugin-cert/src/dns-provider/api.ts b/packages/plugins/plugin-cert/src/dns-provider/api.ts index 70d38767..f8fdc476 100644 --- a/packages/plugins/plugin-cert/src/dns-provider/api.ts +++ b/packages/plugins/plugin-cert/src/dns-provider/api.ts @@ -4,9 +4,6 @@ import { IAccess, Registrable } from "@certd/pipeline"; export type DnsProviderDefine = Registrable & { accessType: string; icon?: string; - autowire?: { - [key: string]: any; - }; }; export type CreateRecordOptions = { diff --git a/packages/plugins/plugin-cert/src/dns-provider/base.ts b/packages/plugins/plugin-cert/src/dns-provider/base.ts index bdcf42b3..ef34a563 100644 --- a/packages/plugins/plugin-cert/src/dns-provider/base.ts +++ b/packages/plugins/plugin-cert/src/dns-provider/base.ts @@ -39,8 +39,6 @@ export async function createDnsProvider(opts: { dnsProviderType: string; context } // @ts-ignore const dnsProvider: IDnsProvider = new DnsProviderClass(); - - Decorator.inject(dnsProviderDefine.autowire, dnsProvider, context); dnsProvider.setCtx(context); await dnsProvider.onInstance(); return dnsProvider; diff --git a/packages/plugins/plugin-cert/src/dns-provider/decorator.ts b/packages/plugins/plugin-cert/src/dns-provider/decorator.ts index 34e17048..418a1d4e 100644 --- a/packages/plugins/plugin-cert/src/dns-provider/decorator.ts +++ b/packages/plugins/plugin-cert/src/dns-provider/decorator.ts @@ -1,6 +1,6 @@ import { dnsProviderRegistry } from "./registry.js"; import { DnsProviderDefine } from "./api.js"; -import { Decorator, AUTOWIRE_KEY } from "@certd/pipeline"; +import { Decorator } from "@certd/pipeline"; import * as _ from "lodash-es"; // 提供一个唯一 key @@ -9,15 +9,6 @@ export const DNS_PROVIDER_CLASS_KEY = "pipeline:dns-provider"; export function IsDnsProvider(define: DnsProviderDefine): ClassDecorator { return (target: any) => { target = Decorator.target(target); - const autowires: any = {}; - const properties = Decorator.getClassProperties(target); - for (const property in properties) { - const autowire = Reflect.getMetadata(AUTOWIRE_KEY, target, property); - if (autowire) { - autowires[property] = autowire; - } - } - _.merge(define, { autowire: autowires }); Reflect.defineMetadata(DNS_PROVIDER_CLASS_KEY, define, target); diff --git a/packages/ui/certd-client/src/components/plugins/common/api-test.vue b/packages/ui/certd-client/src/components/plugins/common/api-test.vue index c041a8ea..f7d44cb6 100644 --- a/packages/ui/certd-client/src/components/plugins/common/api-test.vue +++ b/packages/ui/certd-client/src/components/plugins/common/api-test.vue @@ -15,7 +15,7 @@ import { ref, inject } from "vue"; import { Form } from "ant-design-vue"; defineOptions({ - name: "ApiTest" + name: "ApiTest", }); const getScope: any = inject("get:scope"); @@ -49,14 +49,14 @@ const doTest = async () => { type: pluginType, typeName: form.type, action: props.action, - input: pluginType === "plugin" ? form.input : form + input: pluginType === "plugin" ? form.input : form, }, { onError(err: any) { hasError.value = true; message.value = `错误:${err.message}`; }, - showErrorNotify: false + showErrorNotify: false, } ); message.value = "测试请求成功"; diff --git a/packages/ui/certd-server/export-plugin-yaml.js b/packages/ui/certd-server/export-plugin-yaml.js index 05ad60fe..b809823a 100644 --- a/packages/ui/certd-server/export-plugin-yaml.js +++ b/packages/ui/certd-server/export-plugin-yaml.js @@ -84,7 +84,6 @@ for (const key in modules) { }else{ console.log(`[warning] 未知的插件类型:${pluginDefine.name}`) } - delete pluginDefine.autowire const filePath = path.join(`./metadata/${pluginDefine.pluginType}_${pluginDefine.name}.yaml`) pluginDefine.scriptFilePath = location diff --git a/packages/ui/certd-server/src/configuration.ts b/packages/ui/certd-server/src/configuration.ts index 00d4ddff..a730e592 100644 --- a/packages/ui/certd-server/src/configuration.ts +++ b/packages/ui/certd-server/src/configuration.ts @@ -26,11 +26,11 @@ process.on('uncaughtException', error => { }); @Configuration({ - // detectorOptions: { - // ignore: [ - // '**/plugins/**' - // ] - // }, + detectorOptions: { + ignore: [ + '**/plugins/**' + ] + }, imports: [ koa, orm, diff --git a/packages/ui/certd-server/src/modules/auto/auto-b-load-plugins.ts b/packages/ui/certd-server/src/modules/auto/auto-b-load-plugins.ts index 16667d41..83d4b2b5 100644 --- a/packages/ui/certd-server/src/modules/auto/auto-b-load-plugins.ts +++ b/packages/ui/certd-server/src/modules/auto/auto-b-load-plugins.ts @@ -12,7 +12,7 @@ export class AutoBLoadPlugins { @Init() async init() { logger.info('加载插件开始'); - // await this.pluginService.registerFromLocal("./metadata") + await this.pluginService.registerFromLocal("./metadata") await import("../../plugins/index.js") await this.pluginService.registerFromDb() logger.info('加载插件完成'); diff --git a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts index f56f11bc..0cbf1b05 100644 --- a/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts +++ b/packages/ui/certd-server/src/modules/plugin/service/plugin-service.ts @@ -285,12 +285,22 @@ export class PluginService extends BaseService { async registerFromLocal(localDir: string) { //scan path const files = fs.readdirSync(localDir); + let list = [] for (const file of files) { if (!file.endsWith(".yaml")) { continue; } const item = yaml.load(fs.readFileSync(path.join(localDir, file), "utf8")); + list.push(item); + + } + //排序 + list = list.sort((a, b) => { + return a.order??10 - b.order ??10; + }); + + for (const item of list) { await this.registerPlugin(item); } } diff --git a/packages/ui/certd-server/src/plugins/index.ts b/packages/ui/certd-server/src/plugins/index.ts index 25c07e00..fe50f6a0 100644 --- a/packages/ui/certd-server/src/plugins/index.ts +++ b/packages/ui/certd-server/src/plugins/index.ts @@ -1,22 +1,22 @@ export * from '@certd/plugin-cert'; export * from '@certd/plugin-plus'; -export * from './plugin-aliyun/index.js'; -export * from './plugin-tencent/index.js'; -export * from './plugin-host/index.js'; -export * from './plugin-huawei/index.js'; -export * from './plugin-demo/index.js'; -export * from './plugin-other/index.js'; -export * from './plugin-west/index.js'; -export * from './plugin-doge/index.js'; -export * from './plugin-qiniu/index.js'; -export * from './plugin-woai/index.js'; -export * from './plugin-cachefly/index.js'; -export * from './plugin-gcore/index.js'; -export * from './plugin-qnap/index.js'; -export * from './plugin-aws/index.js'; -export * from './plugin-dnsla/index.js'; -export * from './plugin-upyun/index.js'; -export * from './plugin-volcengine/index.js' -export * from './plugin-jdcloud/index.js' -export * from './plugin-51dns/index.js' -export * from './plugin-notification/index.js' +// export * from './plugin-aliyun/index.js'; +// export * from './plugin-tencent/index.js'; +// export * from './plugin-host/index.js'; +// export * from './plugin-huawei/index.js'; +// export * from './plugin-demo/index.js'; +// export * from './plugin-other/index.js'; +// export * from './plugin-west/index.js'; +// export * from './plugin-doge/index.js'; +// export * from './plugin-qiniu/index.js'; +// export * from './plugin-woai/index.js'; +// export * from './plugin-cachefly/index.js'; +// export * from './plugin-gcore/index.js'; +// export * from './plugin-qnap/index.js'; +// export * from './plugin-aws/index.js'; +// export * from './plugin-dnsla/index.js'; +// export * from './plugin-upyun/index.js'; +// export * from './plugin-volcengine/index.js' +// export * from './plugin-jdcloud/index.js' +// export * from './plugin-51dns/index.js' +// export * from './plugin-notification/index.js' diff --git a/packages/ui/certd-server/src/plugins/plugin-51dns/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-51dns/dns-provider.ts index 32d57231..3d73a6f4 100644 --- a/packages/ui/certd-server/src/plugins/plugin-51dns/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-51dns/dns-provider.ts @@ -18,13 +18,12 @@ export type Dns51Record = { accessType: '51dns', }) export class Dns51DnsProvider extends AbstractDnsProvider { - // 通过Autowire传递context access!: Dns51Access; client!:Dns51Client; async onInstance() { //一些初始化的操作 - // 也可以通过ctx成员变量传递context, 与Autowire效果一样 + // 也可以通过ctx成员变量传递context this.access = this.ctx.access as Dns51Access; this.client = new Dns51Client({ logger: this.logger, diff --git a/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts index a3131b57..e858c8d9 100644 --- a/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-aliyun/dns-provider/aliyun-dns-provider.ts @@ -1,5 +1,4 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; -import { Autowire } from '@certd/pipeline'; import { AliyunAccess, AliyunClient } from '@certd/plugin-lib'; @@ -12,10 +11,8 @@ import { AliyunAccess, AliyunClient } from '@certd/plugin-lib'; }) export class AliyunDnsProvider extends AbstractDnsProvider { client: any; - @Autowire() - access!: AliyunAccess; async onInstance() { - const access: any = this.access; + const access: AliyunAccess = this.ctx.access as AliyunAccess this.client = new AliyunClient({ logger: this.logger }); await this.client.init({ diff --git a/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts index 98c9b109..186694fb 100644 --- a/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-cloudflare/dns-provider.ts @@ -25,11 +25,10 @@ export type CloudflareRecord = { accessType: 'cloudflare', }) export class CloudflareDnsProvider extends AbstractDnsProvider { - // 通过Autowire传递context access!: CloudflareAccess; async onInstance() { //一些初始化的操作 - // 也可以通过ctx成员变量传递context, 与Autowire效果一样 + // 也可以通过ctx成员变量传递context this.access = this.ctx.access as CloudflareAccess; } diff --git a/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts index 120a94b5..fb1ccd96 100644 --- a/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-demo/dns-provider.ts @@ -1,5 +1,4 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; -import { Autowire } from '@certd/pipeline'; import { DemoAccess } from './access.js'; import { isDev } from '../../utils/env.js'; @@ -19,12 +18,11 @@ type DemoRecord = { accessType: 'demo', }) export class DemoDnsProvider extends AbstractDnsProvider { - // 通过Autowire注入工具对象 - @Autowire() access!: DemoAccess; async onInstance() { - // 也可以通过ctx成员变量传递context, 与Autowire效果一样 + this.access = this.ctx.access as DemoAccess + // 也可以通过ctx成员变量传递context this.logger.debug('access', this.access); //初始化的操作 //... diff --git a/packages/ui/certd-server/src/plugins/plugin-dnsla/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-dnsla/dns-provider.ts index 86363f0b..536af40c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-dnsla/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-dnsla/dns-provider.ts @@ -16,11 +16,10 @@ export type DnslaRecord = { accessType: 'dnsla', }) export class DnslaDnsProvider extends AbstractDnsProvider { - // 通过Autowire传递context access!: DnslaAccess; async onInstance() { //一些初始化的操作 - // 也可以通过ctx成员变量传递context, 与Autowire效果一样 + // 通过ctx成员变量传递context this.access = this.ctx.access as DnslaAccess; } diff --git a/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts index e5d6404a..29468c9e 100644 --- a/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-huawei/dns-provider/huawei-dns-provider.ts @@ -1,6 +1,5 @@ import * as _ from "lodash-es"; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; -import { Autowire } from "@certd/pipeline"; import { HuaweiAccess } from "../access/index.js"; import { ApiRequestOptions, HuaweiYunClient } from "@certd/lib-huawei"; @@ -18,12 +17,12 @@ export type SearchRecordOptions = { }) export class HuaweiDnsProvider extends AbstractDnsProvider { client!: HuaweiYunClient; - @Autowire() access!: HuaweiAccess; domainEndpoint = "https://domains-external.myhuaweicloud.com"; dnsEndpoint = "https://dns.cn-south-1.myhuaweicloud.com"; async onInstance() { + this.access = this.ctx.access as HuaweiAccess const access: any = this.access; this.client = new HuaweiYunClient(access, this.logger); } diff --git a/packages/ui/certd-server/src/plugins/plugin-jdcloud/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-jdcloud/dns-provider.ts index 96a492b2..f4fd7d3d 100644 --- a/packages/ui/certd-server/src/plugins/plugin-jdcloud/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-jdcloud/dns-provider.ts @@ -1,5 +1,4 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; -import { Autowire } from "@certd/pipeline"; import { JDCloudAccess } from "./access.js"; @IsDnsProvider({ @@ -10,11 +9,11 @@ import { JDCloudAccess } from "./access.js"; icon: "svg:icon-jdcloud" }) export class JDCloudDnsProvider extends AbstractDnsProvider { - @Autowire() access!: JDCloudAccess; async onInstance() { + this.access = this.ctx.access as JDCloudAccess } diff --git a/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts index de7b7dc5..62473da2 100644 --- a/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-namesilo/dns-provider.ts @@ -17,11 +17,10 @@ export type NamesiloRecord = { accessType: 'namesilo', }) export class NamesiloDnsProvider extends AbstractDnsProvider { - // 通过Autowire传递context access!: NamesiloAccess; async onInstance() { //一些初始化的操作 - // 也可以通过ctx成员变量传递context, 与Autowire效果一样 + // 也可以通过ctx成员变量传递context this.access = this.ctx.access as NamesiloAccess; } diff --git a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts index b81c620b..723ba972 100644 --- a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/dnspod-dns-provider.ts @@ -1,4 +1,3 @@ -import { Autowire } from '@certd/pipeline'; import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import * as _ from 'lodash-es'; @@ -13,13 +12,13 @@ import { DnspodAccess } from '../access/index.js'; icon: 'svg:icon-tencentcloud', }) export class DnspodDnsProvider extends AbstractDnsProvider { - @Autowire() access!: DnspodAccess; loginToken: any; endpoint = ''; async onInstance() { + this.access = this.ctx.access as DnspodAccess const access: DnspodAccess = this.access as DnspodAccess; this.loginToken = access.id + ',' + access.token; this.endpoint = access.endpoint || 'https://dnsapi.cn'; diff --git a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts index 95a25785..9be95d22 100644 --- a/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-tencent/dns-provider/tencent-dns-provider.ts @@ -1,5 +1,3 @@ -import { Autowire } from '@certd/pipeline'; - import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; import { TencentAccess } from '@certd/plugin-lib'; @@ -11,7 +9,6 @@ import { TencentAccess } from '@certd/plugin-lib'; icon: 'svg:icon-tencentcloud', }) export class TencentDnsProvider extends AbstractDnsProvider { - @Autowire() access!: TencentAccess; client!: any; @@ -19,6 +16,7 @@ export class TencentDnsProvider extends AbstractDnsProvider { endpoint = 'dnspod.tencentcloudapi.com'; async onInstance() { + this.access = this.ctx.access as TencentAccess const clientConfig = { credential: this.access, region: '', diff --git a/packages/ui/certd-server/src/plugins/plugin-volcengine/volcengine-dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-volcengine/volcengine-dns-provider.ts index b7ce4533..77313e3a 100644 --- a/packages/ui/certd-server/src/plugins/plugin-volcengine/volcengine-dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-volcengine/volcengine-dns-provider.ts @@ -1,5 +1,4 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert"; -import { Autowire } from "@certd/pipeline"; import { VolcengineDnsClient } from "./dns-client.js"; import { VolcengineAccess } from "./access.js"; @@ -13,11 +12,11 @@ import { VolcengineAccess } from "./access.js"; }) export class VolcengineDnsProvider extends AbstractDnsProvider { client: VolcengineDnsClient; - @Autowire() access!: VolcengineAccess; async onInstance() { + this.access = this.ctx.access this.client = new VolcengineDnsClient({ access: this.access, logger: this.logger, diff --git a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts index 8ec3be1c..2df31192 100644 --- a/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts +++ b/packages/ui/certd-server/src/plugins/plugin-west/dns-provider.ts @@ -1,5 +1,4 @@ import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert'; -import { Autowire } from '@certd/pipeline'; import { WestAccess } from './access.js'; @@ -22,12 +21,11 @@ type westRecord = { accessType: 'west', }) export class WestDnsProvider extends AbstractDnsProvider { - // 通过Autowire注入工具对象 - @Autowire() access!: WestAccess; async onInstance() { - // 也可以通过ctx成员变量传递context, 与Autowire效果一样 + this.access = this.ctx.access as WestAccess + // 也可以通过ctx成员变量传递context this.logger.debug('access:', this.access); //初始化的操作 //...