refactor: pipeline edit view

This commit is contained in:
xiaojunnuo
2022-10-26 09:02:47 +08:00
parent af919c2f6e
commit 370a28c10e
48 changed files with 1606 additions and 3 deletions
@@ -0,0 +1 @@
export * from "./registry";
@@ -0,0 +1,53 @@
import { Logger } from "log4js";
import { logger } from "../utils/util.log";
export type Registrable = {
name: string;
title: string;
desc?: string;
};
export abstract class AbstractRegistrable {
static define: Registrable;
logger: Logger = logger;
}
export class Registry<T extends typeof AbstractRegistrable> {
storage: {
[key: string]: T;
} = {};
install(target: T) {
if (target == null) {
return;
}
let defineName = target.define.name;
if (defineName == null) {
defineName = target.name;
}
this.register(defineName, target);
}
register(key: string, value: T) {
if (!key || value == null) {
return;
}
this.storage[key] = value;
}
get(name: string) {
if (!name) {
throw new Error("插件名称不能为空");
}
const plugin = this.storage[name];
if (!plugin) {
throw new Error(`插件${name}还未注册`);
}
return plugin;
}
getStorage() {
return this.storage;
}
}