mirror of https://github.com/certd/certd
chore: 移除autowire特性
parent
048696ee93
commit
0b6941d5ce
|
@ -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);
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,2 +1 @@
|
||||||
export * from "./utils.js";
|
export * from "./utils.js";
|
||||||
export * from "./common.js";
|
|
||||||
|
|
|
@ -51,10 +51,6 @@ export type PluginDefine = Registrable & {
|
||||||
[key: string]: TaskOutputDefine;
|
[key: string]: TaskOutputDefine;
|
||||||
};
|
};
|
||||||
|
|
||||||
autowire?: {
|
|
||||||
[key: string]: any;
|
|
||||||
};
|
|
||||||
|
|
||||||
shortcut?: {
|
shortcut?: {
|
||||||
[key: string]: {
|
[key: string]: {
|
||||||
title: string;
|
title: string;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { pluginRegistry } from "./registry.js";
|
import { pluginRegistry } from "./registry.js";
|
||||||
import { PluginDefine, TaskInputDefine, TaskOutputDefine } from "./api.js";
|
import { PluginDefine, TaskInputDefine, TaskOutputDefine } from "./api.js";
|
||||||
import { Decorator } from "../decorator/index.js";
|
import { Decorator } from "../decorator/index.js";
|
||||||
import { AUTOWIRE_KEY } from "../decorator/index.js";
|
|
||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
import { merge, sortBy } from "lodash-es";
|
import { merge, sortBy } from "lodash-es";
|
||||||
// 提供一个唯一 key
|
// 提供一个唯一 key
|
||||||
|
@ -12,7 +11,6 @@ export function IsTaskPlugin(define: PluginDefine): ClassDecorator {
|
||||||
target = Decorator.target(target);
|
target = Decorator.target(target);
|
||||||
|
|
||||||
const inputs: any = {};
|
const inputs: any = {};
|
||||||
const autowires: any = {};
|
|
||||||
const outputs: any = {};
|
const outputs: any = {};
|
||||||
const properties = Decorator.getClassProperties(target);
|
const properties = Decorator.getClassProperties(target);
|
||||||
for (const property in properties) {
|
for (const property in properties) {
|
||||||
|
@ -21,11 +19,6 @@ export function IsTaskPlugin(define: PluginDefine): ClassDecorator {
|
||||||
inputs[property] = input;
|
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);
|
const output = Reflect.getMetadata(PLUGIN_OUTPUT_KEY, target, property);
|
||||||
if (output) {
|
if (output) {
|
||||||
outputs[property] = 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);
|
Reflect.defineMetadata(PLUGIN_CLASS_KEY, define, target);
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,6 @@ import { IAccess, Registrable } from "@certd/pipeline";
|
||||||
export type DnsProviderDefine = Registrable & {
|
export type DnsProviderDefine = Registrable & {
|
||||||
accessType: string;
|
accessType: string;
|
||||||
icon?: string;
|
icon?: string;
|
||||||
autowire?: {
|
|
||||||
[key: string]: any;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export type CreateRecordOptions = {
|
export type CreateRecordOptions = {
|
||||||
|
|
|
@ -39,8 +39,6 @@ export async function createDnsProvider(opts: { dnsProviderType: string; context
|
||||||
}
|
}
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const dnsProvider: IDnsProvider = new DnsProviderClass();
|
const dnsProvider: IDnsProvider = new DnsProviderClass();
|
||||||
|
|
||||||
Decorator.inject(dnsProviderDefine.autowire, dnsProvider, context);
|
|
||||||
dnsProvider.setCtx(context);
|
dnsProvider.setCtx(context);
|
||||||
await dnsProvider.onInstance();
|
await dnsProvider.onInstance();
|
||||||
return dnsProvider;
|
return dnsProvider;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { dnsProviderRegistry } from "./registry.js";
|
import { dnsProviderRegistry } from "./registry.js";
|
||||||
import { DnsProviderDefine } from "./api.js";
|
import { DnsProviderDefine } from "./api.js";
|
||||||
import { Decorator, AUTOWIRE_KEY } from "@certd/pipeline";
|
import { Decorator } from "@certd/pipeline";
|
||||||
import * as _ from "lodash-es";
|
import * as _ from "lodash-es";
|
||||||
|
|
||||||
// 提供一个唯一 key
|
// 提供一个唯一 key
|
||||||
|
@ -9,15 +9,6 @@ export const DNS_PROVIDER_CLASS_KEY = "pipeline:dns-provider";
|
||||||
export function IsDnsProvider(define: DnsProviderDefine): ClassDecorator {
|
export function IsDnsProvider(define: DnsProviderDefine): ClassDecorator {
|
||||||
return (target: any) => {
|
return (target: any) => {
|
||||||
target = Decorator.target(target);
|
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);
|
Reflect.defineMetadata(DNS_PROVIDER_CLASS_KEY, define, target);
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ import { ref, inject } from "vue";
|
||||||
import { Form } from "ant-design-vue";
|
import { Form } from "ant-design-vue";
|
||||||
|
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: "ApiTest"
|
name: "ApiTest",
|
||||||
});
|
});
|
||||||
|
|
||||||
const getScope: any = inject("get:scope");
|
const getScope: any = inject("get:scope");
|
||||||
|
@ -49,14 +49,14 @@ const doTest = async () => {
|
||||||
type: pluginType,
|
type: pluginType,
|
||||||
typeName: form.type,
|
typeName: form.type,
|
||||||
action: props.action,
|
action: props.action,
|
||||||
input: pluginType === "plugin" ? form.input : form
|
input: pluginType === "plugin" ? form.input : form,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
onError(err: any) {
|
onError(err: any) {
|
||||||
hasError.value = true;
|
hasError.value = true;
|
||||||
message.value = `错误:${err.message}`;
|
message.value = `错误:${err.message}`;
|
||||||
},
|
},
|
||||||
showErrorNotify: false
|
showErrorNotify: false,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
message.value = "测试请求成功";
|
message.value = "测试请求成功";
|
||||||
|
|
|
@ -84,7 +84,6 @@ for (const key in modules) {
|
||||||
}else{
|
}else{
|
||||||
console.log(`[warning] 未知的插件类型:${pluginDefine.name}`)
|
console.log(`[warning] 未知的插件类型:${pluginDefine.name}`)
|
||||||
}
|
}
|
||||||
delete pluginDefine.autowire
|
|
||||||
const filePath = path.join(`./metadata/${pluginDefine.pluginType}_${pluginDefine.name}.yaml`)
|
const filePath = path.join(`./metadata/${pluginDefine.pluginType}_${pluginDefine.name}.yaml`)
|
||||||
|
|
||||||
pluginDefine.scriptFilePath = location
|
pluginDefine.scriptFilePath = location
|
||||||
|
|
|
@ -26,11 +26,11 @@ process.on('uncaughtException', error => {
|
||||||
});
|
});
|
||||||
|
|
||||||
@Configuration({
|
@Configuration({
|
||||||
// detectorOptions: {
|
detectorOptions: {
|
||||||
// ignore: [
|
ignore: [
|
||||||
// '**/plugins/**'
|
'**/plugins/**'
|
||||||
// ]
|
]
|
||||||
// },
|
},
|
||||||
imports: [
|
imports: [
|
||||||
koa,
|
koa,
|
||||||
orm,
|
orm,
|
||||||
|
|
|
@ -12,7 +12,7 @@ export class AutoBLoadPlugins {
|
||||||
@Init()
|
@Init()
|
||||||
async init() {
|
async init() {
|
||||||
logger.info('加载插件开始');
|
logger.info('加载插件开始');
|
||||||
// await this.pluginService.registerFromLocal("./metadata")
|
await this.pluginService.registerFromLocal("./metadata")
|
||||||
await import("../../plugins/index.js")
|
await import("../../plugins/index.js")
|
||||||
await this.pluginService.registerFromDb()
|
await this.pluginService.registerFromDb()
|
||||||
logger.info('加载插件完成');
|
logger.info('加载插件完成');
|
||||||
|
|
|
@ -285,12 +285,22 @@ export class PluginService extends BaseService<PluginEntity> {
|
||||||
async registerFromLocal(localDir: string) {
|
async registerFromLocal(localDir: string) {
|
||||||
//scan path
|
//scan path
|
||||||
const files = fs.readdirSync(localDir);
|
const files = fs.readdirSync(localDir);
|
||||||
|
let list = []
|
||||||
for (const file of files) {
|
for (const file of files) {
|
||||||
if (!file.endsWith(".yaml")) {
|
if (!file.endsWith(".yaml")) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const item = yaml.load(fs.readFileSync(path.join(localDir, file), "utf8"));
|
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);
|
await this.registerPlugin(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
export * from '@certd/plugin-cert';
|
export * from '@certd/plugin-cert';
|
||||||
export * from '@certd/plugin-plus';
|
export * from '@certd/plugin-plus';
|
||||||
export * from './plugin-aliyun/index.js';
|
// export * from './plugin-aliyun/index.js';
|
||||||
export * from './plugin-tencent/index.js';
|
// export * from './plugin-tencent/index.js';
|
||||||
export * from './plugin-host/index.js';
|
// export * from './plugin-host/index.js';
|
||||||
export * from './plugin-huawei/index.js';
|
// export * from './plugin-huawei/index.js';
|
||||||
export * from './plugin-demo/index.js';
|
// export * from './plugin-demo/index.js';
|
||||||
export * from './plugin-other/index.js';
|
// export * from './plugin-other/index.js';
|
||||||
export * from './plugin-west/index.js';
|
// export * from './plugin-west/index.js';
|
||||||
export * from './plugin-doge/index.js';
|
// export * from './plugin-doge/index.js';
|
||||||
export * from './plugin-qiniu/index.js';
|
// export * from './plugin-qiniu/index.js';
|
||||||
export * from './plugin-woai/index.js';
|
// export * from './plugin-woai/index.js';
|
||||||
export * from './plugin-cachefly/index.js';
|
// export * from './plugin-cachefly/index.js';
|
||||||
export * from './plugin-gcore/index.js';
|
// export * from './plugin-gcore/index.js';
|
||||||
export * from './plugin-qnap/index.js';
|
// export * from './plugin-qnap/index.js';
|
||||||
export * from './plugin-aws/index.js';
|
// export * from './plugin-aws/index.js';
|
||||||
export * from './plugin-dnsla/index.js';
|
// export * from './plugin-dnsla/index.js';
|
||||||
export * from './plugin-upyun/index.js';
|
// export * from './plugin-upyun/index.js';
|
||||||
export * from './plugin-volcengine/index.js'
|
// export * from './plugin-volcengine/index.js'
|
||||||
export * from './plugin-jdcloud/index.js'
|
// export * from './plugin-jdcloud/index.js'
|
||||||
export * from './plugin-51dns/index.js'
|
// export * from './plugin-51dns/index.js'
|
||||||
export * from './plugin-notification/index.js'
|
// export * from './plugin-notification/index.js'
|
||||||
|
|
|
@ -18,13 +18,12 @@ export type Dns51Record = {
|
||||||
accessType: '51dns',
|
accessType: '51dns',
|
||||||
})
|
})
|
||||||
export class Dns51DnsProvider extends AbstractDnsProvider<Dns51Record> {
|
export class Dns51DnsProvider extends AbstractDnsProvider<Dns51Record> {
|
||||||
// 通过Autowire传递context
|
|
||||||
access!: Dns51Access;
|
access!: Dns51Access;
|
||||||
|
|
||||||
client!:Dns51Client;
|
client!:Dns51Client;
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
//一些初始化的操作
|
//一些初始化的操作
|
||||||
// 也可以通过ctx成员变量传递context, 与Autowire效果一样
|
// 也可以通过ctx成员变量传递context
|
||||||
this.access = this.ctx.access as Dns51Access;
|
this.access = this.ctx.access as Dns51Access;
|
||||||
this.client = new Dns51Client({
|
this.client = new Dns51Client({
|
||||||
logger: this.logger,
|
logger: this.logger,
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
||||||
import { Autowire } from '@certd/pipeline';
|
|
||||||
|
|
||||||
import { AliyunAccess, AliyunClient } from '@certd/plugin-lib';
|
import { AliyunAccess, AliyunClient } from '@certd/plugin-lib';
|
||||||
|
|
||||||
|
@ -12,10 +11,8 @@ import { AliyunAccess, AliyunClient } from '@certd/plugin-lib';
|
||||||
})
|
})
|
||||||
export class AliyunDnsProvider extends AbstractDnsProvider {
|
export class AliyunDnsProvider extends AbstractDnsProvider {
|
||||||
client: any;
|
client: any;
|
||||||
@Autowire()
|
|
||||||
access!: AliyunAccess;
|
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
const access: any = this.access;
|
const access: AliyunAccess = this.ctx.access as AliyunAccess
|
||||||
|
|
||||||
this.client = new AliyunClient({ logger: this.logger });
|
this.client = new AliyunClient({ logger: this.logger });
|
||||||
await this.client.init({
|
await this.client.init({
|
||||||
|
|
|
@ -25,11 +25,10 @@ export type CloudflareRecord = {
|
||||||
accessType: 'cloudflare',
|
accessType: 'cloudflare',
|
||||||
})
|
})
|
||||||
export class CloudflareDnsProvider extends AbstractDnsProvider<CloudflareRecord> {
|
export class CloudflareDnsProvider extends AbstractDnsProvider<CloudflareRecord> {
|
||||||
// 通过Autowire传递context
|
|
||||||
access!: CloudflareAccess;
|
access!: CloudflareAccess;
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
//一些初始化的操作
|
//一些初始化的操作
|
||||||
// 也可以通过ctx成员变量传递context, 与Autowire效果一样
|
// 也可以通过ctx成员变量传递context
|
||||||
this.access = this.ctx.access as CloudflareAccess;
|
this.access = this.ctx.access as CloudflareAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
||||||
import { Autowire } from '@certd/pipeline';
|
|
||||||
|
|
||||||
import { DemoAccess } from './access.js';
|
import { DemoAccess } from './access.js';
|
||||||
import { isDev } from '../../utils/env.js';
|
import { isDev } from '../../utils/env.js';
|
||||||
|
@ -19,12 +18,11 @@ type DemoRecord = {
|
||||||
accessType: 'demo',
|
accessType: 'demo',
|
||||||
})
|
})
|
||||||
export class DemoDnsProvider extends AbstractDnsProvider<DemoRecord> {
|
export class DemoDnsProvider extends AbstractDnsProvider<DemoRecord> {
|
||||||
// 通过Autowire注入工具对象
|
|
||||||
@Autowire()
|
|
||||||
access!: DemoAccess;
|
access!: DemoAccess;
|
||||||
|
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
// 也可以通过ctx成员变量传递context, 与Autowire效果一样
|
this.access = this.ctx.access as DemoAccess
|
||||||
|
// 也可以通过ctx成员变量传递context
|
||||||
this.logger.debug('access', this.access);
|
this.logger.debug('access', this.access);
|
||||||
//初始化的操作
|
//初始化的操作
|
||||||
//...
|
//...
|
||||||
|
|
|
@ -16,11 +16,10 @@ export type DnslaRecord = {
|
||||||
accessType: 'dnsla',
|
accessType: 'dnsla',
|
||||||
})
|
})
|
||||||
export class DnslaDnsProvider extends AbstractDnsProvider<DnslaRecord> {
|
export class DnslaDnsProvider extends AbstractDnsProvider<DnslaRecord> {
|
||||||
// 通过Autowire传递context
|
|
||||||
access!: DnslaAccess;
|
access!: DnslaAccess;
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
//一些初始化的操作
|
//一些初始化的操作
|
||||||
// 也可以通过ctx成员变量传递context, 与Autowire效果一样
|
// 通过ctx成员变量传递context
|
||||||
this.access = this.ctx.access as DnslaAccess;
|
this.access = this.ctx.access as DnslaAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import * as _ from "lodash-es";
|
import * as _ from "lodash-es";
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert";
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert";
|
||||||
import { Autowire } from "@certd/pipeline";
|
|
||||||
|
|
||||||
import { HuaweiAccess } from "../access/index.js";
|
import { HuaweiAccess } from "../access/index.js";
|
||||||
import { ApiRequestOptions, HuaweiYunClient } from "@certd/lib-huawei";
|
import { ApiRequestOptions, HuaweiYunClient } from "@certd/lib-huawei";
|
||||||
|
@ -18,12 +17,12 @@ export type SearchRecordOptions = {
|
||||||
})
|
})
|
||||||
export class HuaweiDnsProvider extends AbstractDnsProvider {
|
export class HuaweiDnsProvider extends AbstractDnsProvider {
|
||||||
client!: HuaweiYunClient;
|
client!: HuaweiYunClient;
|
||||||
@Autowire()
|
|
||||||
access!: HuaweiAccess;
|
access!: HuaweiAccess;
|
||||||
domainEndpoint = "https://domains-external.myhuaweicloud.com";
|
domainEndpoint = "https://domains-external.myhuaweicloud.com";
|
||||||
dnsEndpoint = "https://dns.cn-south-1.myhuaweicloud.com";
|
dnsEndpoint = "https://dns.cn-south-1.myhuaweicloud.com";
|
||||||
|
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
|
this.access = this.ctx.access as HuaweiAccess
|
||||||
const access: any = this.access;
|
const access: any = this.access;
|
||||||
this.client = new HuaweiYunClient(access, this.logger);
|
this.client = new HuaweiYunClient(access, this.logger);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert";
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert";
|
||||||
import { Autowire } from "@certd/pipeline";
|
|
||||||
import { JDCloudAccess } from "./access.js";
|
import { JDCloudAccess } from "./access.js";
|
||||||
|
|
||||||
@IsDnsProvider({
|
@IsDnsProvider({
|
||||||
|
@ -10,11 +9,11 @@ import { JDCloudAccess } from "./access.js";
|
||||||
icon: "svg:icon-jdcloud"
|
icon: "svg:icon-jdcloud"
|
||||||
})
|
})
|
||||||
export class JDCloudDnsProvider extends AbstractDnsProvider {
|
export class JDCloudDnsProvider extends AbstractDnsProvider {
|
||||||
@Autowire()
|
|
||||||
access!: JDCloudAccess;
|
access!: JDCloudAccess;
|
||||||
|
|
||||||
|
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
|
this.access = this.ctx.access as JDCloudAccess
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,11 +17,10 @@ export type NamesiloRecord = {
|
||||||
accessType: 'namesilo',
|
accessType: 'namesilo',
|
||||||
})
|
})
|
||||||
export class NamesiloDnsProvider extends AbstractDnsProvider<NamesiloRecord> {
|
export class NamesiloDnsProvider extends AbstractDnsProvider<NamesiloRecord> {
|
||||||
// 通过Autowire传递context
|
|
||||||
access!: NamesiloAccess;
|
access!: NamesiloAccess;
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
//一些初始化的操作
|
//一些初始化的操作
|
||||||
// 也可以通过ctx成员变量传递context, 与Autowire效果一样
|
// 也可以通过ctx成员变量传递context
|
||||||
this.access = this.ctx.access as NamesiloAccess;
|
this.access = this.ctx.access as NamesiloAccess;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import { Autowire } from '@certd/pipeline';
|
|
||||||
|
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
||||||
import * as _ from 'lodash-es';
|
import * as _ from 'lodash-es';
|
||||||
|
@ -13,13 +12,13 @@ import { DnspodAccess } from '../access/index.js';
|
||||||
icon: 'svg:icon-tencentcloud',
|
icon: 'svg:icon-tencentcloud',
|
||||||
})
|
})
|
||||||
export class DnspodDnsProvider extends AbstractDnsProvider {
|
export class DnspodDnsProvider extends AbstractDnsProvider {
|
||||||
@Autowire()
|
|
||||||
access!: DnspodAccess;
|
access!: DnspodAccess;
|
||||||
|
|
||||||
loginToken: any;
|
loginToken: any;
|
||||||
|
|
||||||
endpoint = '';
|
endpoint = '';
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
|
this.access = this.ctx.access as DnspodAccess
|
||||||
const access: DnspodAccess = this.access as DnspodAccess;
|
const access: DnspodAccess = this.access as DnspodAccess;
|
||||||
this.loginToken = access.id + ',' + access.token;
|
this.loginToken = access.id + ',' + access.token;
|
||||||
this.endpoint = access.endpoint || 'https://dnsapi.cn';
|
this.endpoint = access.endpoint || 'https://dnsapi.cn';
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import { Autowire } from '@certd/pipeline';
|
|
||||||
|
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
||||||
import { TencentAccess } from '@certd/plugin-lib';
|
import { TencentAccess } from '@certd/plugin-lib';
|
||||||
|
|
||||||
|
@ -11,7 +9,6 @@ import { TencentAccess } from '@certd/plugin-lib';
|
||||||
icon: 'svg:icon-tencentcloud',
|
icon: 'svg:icon-tencentcloud',
|
||||||
})
|
})
|
||||||
export class TencentDnsProvider extends AbstractDnsProvider {
|
export class TencentDnsProvider extends AbstractDnsProvider {
|
||||||
@Autowire()
|
|
||||||
access!: TencentAccess;
|
access!: TencentAccess;
|
||||||
|
|
||||||
client!: any;
|
client!: any;
|
||||||
|
@ -19,6 +16,7 @@ export class TencentDnsProvider extends AbstractDnsProvider {
|
||||||
endpoint = 'dnspod.tencentcloudapi.com';
|
endpoint = 'dnspod.tencentcloudapi.com';
|
||||||
|
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
|
this.access = this.ctx.access as TencentAccess
|
||||||
const clientConfig = {
|
const clientConfig = {
|
||||||
credential: this.access,
|
credential: this.access,
|
||||||
region: '',
|
region: '',
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert";
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from "@certd/plugin-cert";
|
||||||
import { Autowire } from "@certd/pipeline";
|
|
||||||
|
|
||||||
import { VolcengineDnsClient } from "./dns-client.js";
|
import { VolcengineDnsClient } from "./dns-client.js";
|
||||||
import { VolcengineAccess } from "./access.js";
|
import { VolcengineAccess } from "./access.js";
|
||||||
|
@ -13,11 +12,11 @@ import { VolcengineAccess } from "./access.js";
|
||||||
})
|
})
|
||||||
export class VolcengineDnsProvider extends AbstractDnsProvider {
|
export class VolcengineDnsProvider extends AbstractDnsProvider {
|
||||||
client: VolcengineDnsClient;
|
client: VolcengineDnsClient;
|
||||||
@Autowire()
|
|
||||||
access!: VolcengineAccess;
|
access!: VolcengineAccess;
|
||||||
|
|
||||||
|
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
|
this.access = this.ctx.access
|
||||||
this.client = new VolcengineDnsClient({
|
this.client = new VolcengineDnsClient({
|
||||||
access: this.access,
|
access: this.access,
|
||||||
logger: this.logger,
|
logger: this.logger,
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
import { AbstractDnsProvider, CreateRecordOptions, IsDnsProvider, RemoveRecordOptions } from '@certd/plugin-cert';
|
||||||
import { Autowire } from '@certd/pipeline';
|
|
||||||
|
|
||||||
import { WestAccess } from './access.js';
|
import { WestAccess } from './access.js';
|
||||||
|
|
||||||
|
@ -22,12 +21,11 @@ type westRecord = {
|
||||||
accessType: 'west',
|
accessType: 'west',
|
||||||
})
|
})
|
||||||
export class WestDnsProvider extends AbstractDnsProvider<westRecord> {
|
export class WestDnsProvider extends AbstractDnsProvider<westRecord> {
|
||||||
// 通过Autowire注入工具对象
|
|
||||||
@Autowire()
|
|
||||||
access!: WestAccess;
|
access!: WestAccess;
|
||||||
|
|
||||||
async onInstance() {
|
async onInstance() {
|
||||||
// 也可以通过ctx成员变量传递context, 与Autowire效果一样
|
this.access = this.ctx.access as WestAccess
|
||||||
|
// 也可以通过ctx成员变量传递context
|
||||||
this.logger.debug('access:', this.access);
|
this.logger.debug('access:', this.access);
|
||||||
//初始化的操作
|
//初始化的操作
|
||||||
//...
|
//...
|
||||||
|
|
Loading…
Reference in New Issue