You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
586 B
27 lines
586 B
import type { Component } from 'vue';
|
|
|
|
class FieldRegistry {
|
|
private static readonly _instance: FieldRegistry = new FieldRegistry();
|
|
private readonly _map: Map<string, Component>;
|
|
constructor() {
|
|
this._map = new Map<string, Component>();
|
|
}
|
|
|
|
push(compName: string, component: Component) {
|
|
this._map.set(compName, component);
|
|
}
|
|
|
|
static get instance() {
|
|
return this._instance;
|
|
}
|
|
|
|
get(compName: string) {
|
|
return this._map.get(compName);
|
|
}
|
|
|
|
get map() {
|
|
return this._map;
|
|
}
|
|
}
|
|
const fieldRegistry = FieldRegistry.instance;
|
|
export { fieldRegistry };
|
|
|