From e68005fd6fd1ddaf2348d43454d943910051cf98 Mon Sep 17 00:00:00 2001 From: MiaoWoo Date: Fri, 17 Jan 2020 11:10:30 +0800 Subject: [PATCH] feat: use inject container Signed-off-by: MiaoWoo --- packages/api/src/interfaces/plugin.ts | 2 +- packages/container/src/decorators.ts | 7 ++++--- packages/core/src/index.ts | 9 +++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/packages/api/src/interfaces/plugin.ts b/packages/api/src/interfaces/plugin.ts index 90f8b757..94c38379 100644 --- a/packages/api/src/interfaces/plugin.ts +++ b/packages/api/src/interfaces/plugin.ts @@ -18,7 +18,7 @@ export namespace plugin { */ export interface PluginManager { scan(folder: string): void; - build(container: Container): void; + build(): void; load(...args: any[]): void; enable(...args: any[]): void; disable(...args: any[]): void; diff --git a/packages/container/src/decorators.ts b/packages/container/src/decorators.ts index 10217cd7..4c39d4c8 100644 --- a/packages/container/src/decorators.ts +++ b/packages/container/src/decorators.ts @@ -2,7 +2,7 @@ import { interfaces, Container } from "inversify"; let _container: Container; -const CONTAINER = Symbol.for("@ms/ioc:Container"); +const ContainerInstance = Symbol.for("@ms/ioc:Container"); const INJECTION = Symbol.for("INJECTION"); function _proxyGetter( @@ -35,12 +35,12 @@ function _proxyGetter( } function initContainer(container: Container) { - Reflect.defineMetadata(CONTAINER, container, Reflect); + Reflect.defineMetadata(ContainerInstance, container, Reflect); _container = container; } function getContainer(): Container { - return _container || Reflect.getMetadata(CONTAINER, Reflect) + return _container || Reflect.getMetadata(ContainerInstance, Reflect) } function makePropertyInjectDecorator(doCache: boolean) { @@ -97,6 +97,7 @@ let lazyMultiInject = makePropertyMultiInjectDecorator(doCache) export { initContainer, getContainer, + ContainerInstance, lazyInject, lazyInjectNamed, lazyInjectTagged, diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 1f85260f..69444bc5 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -3,7 +3,7 @@ import '@ms/nashorn' import { plugin, server, task, MiaoScriptConsole } from '@ms/api' import { PluginManagerImpl } from '@ms/plugin' import { XMLHttpRequest as xhr } from '@ms/ployfill' -import { DefaultContainer as container, injectable, inject, postConstruct } from '@ms/container' +import { DefaultContainer as container, injectable, inject, ContainerInstance } from '@ms/container' let startTime = new Date().getTime(); @@ -23,7 +23,7 @@ class MiaoScriptCore { console.log('MiaoScript engine loading completed... Done (' + (new Date().getTime() - startTime) / 1000 + 's)!'); return () => this.disable(); } - + loadServerConsole() { // @ts-ignore console = new this.Console(); @@ -39,7 +39,7 @@ class MiaoScriptCore { loadPlugins() { this.pluginManager.scan('plugins'); - this.pluginManager.build(container); + this.pluginManager.build(); this.pluginManager.load(); this.pluginManager.enable(); } @@ -49,7 +49,7 @@ class MiaoScriptCore { } } -function detectServer(){ +function detectServer() { let type = 'unknow' try { Java.type("org.bukkit.Bukkit"); @@ -75,6 +75,7 @@ function detectServer(){ function init() { console.info('Initialization MiaoScript Core Package @ms/core. Please wait...') + container.bind(ContainerInstance).toConstantValue(container); container.bind(plugin.PluginInstance).toConstantValue(base.getInstance()); let type = detectServer(); require(`@ms/${type}`);