feat: optimiz plugin system

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-01-17 17:45:13 +08:00
parent 268f5d2837
commit 93997cd695
3 changed files with 22 additions and 16 deletions

View File

@ -9,10 +9,9 @@ import { getPluginMetadatas, getPluginCommandMetadata, getPluginListenerMetadata
*/
export function plugin(metadata: interfaces.PluginMetadata) {
return function(target: any) {
target.description = metadata;
metadata.target = target;
decorate(injectable(), target);
Reflect.defineMetadata(METADATA_KEY.plugin, metadata, target.constructor);
Reflect.defineMetadata(METADATA_KEY.plugin, metadata, target);
const previousMetadata: Map<string, interfaces.PluginMetadata> = getPluginMetadatas();
previousMetadata.set(metadata.name, metadata);
Reflect.defineMetadata(METADATA_KEY.plugin, previousMetadata, Reflect);