mirror of
https://github.com/certd/certd.git
synced 2026-04-14 12:30:54 +08:00
30 lines
971 B
TypeScript
30 lines
971 B
TypeScript
import { AbstractRegistrable } from "../registry";
|
|
import { Logger } from "log4js";
|
|
import { IAccessService } from "../access/access-service";
|
|
import { IContext } from "../core/context";
|
|
import { PluginDefine, TaskInput, TaskOutput, TaskPlugin } from "./api";
|
|
|
|
export abstract class AbstractPlugin extends AbstractRegistrable<PluginDefine> implements TaskPlugin {
|
|
logger!: Logger;
|
|
// @ts-ignore
|
|
accessService: IAccessService;
|
|
// @ts-ignore
|
|
pipelineContext: IContext;
|
|
// @ts-ignore
|
|
userContext: IContext;
|
|
|
|
async doInit(options: { accessService: IAccessService; pipelineContext: IContext; userContext: IContext; logger: Logger }) {
|
|
this.accessService = options.accessService;
|
|
this.pipelineContext = options.pipelineContext;
|
|
this.userContext = options.userContext;
|
|
this.logger = options.logger;
|
|
await this.onInit();
|
|
}
|
|
|
|
protected async onInit(): Promise<void> {
|
|
//
|
|
}
|
|
|
|
abstract execute(input: TaskInput): Promise<TaskOutput>;
|
|
}
|