feat: optimize plugin scan & load

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-06-23 15:51:55 +08:00
parent cfef52aecd
commit 7c016f6ba6
8 changed files with 120 additions and 50 deletions

View File

@ -10,9 +10,14 @@ export class BasicLoader implements plugin.PluginLoader {
constructor() {
this.pluginRequireMap = new Map()
}
require(target: any, result: any) {
this.pluginRequireMap.set(target.toString(), result)
return result
require(loadMetadata: plugin.PluginLoadMetadata) {
let metadata = loadMetadata.instance.description
if (metadata && metadata.type == this.type) {
loadMetadata.metadata = metadata
loadMetadata.loaded = true
this.pluginRequireMap.set(metadata.source.toString(), loadMetadata.instance)
}
return loadMetadata
}
build(metadata: plugin.PluginMetadata) {
return this.pluginRequireMap.get(metadata.source.toString())