@@ -1,5 +1,5 @@
 | 
				
			|||||||
import * as reflect from '@ccms/common/dist/reflect'
 | 
					import * as reflect from '@ccms/common/dist/reflect'
 | 
				
			||||||
import { injectable } from '@ccms/container'
 | 
					import { injectable, inject } from '@ccms/container'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { NativePluginManager } from './native_plugin'
 | 
					import { NativePluginManager } from './native_plugin'
 | 
				
			||||||
import { constants } from '../../constants'
 | 
					import { constants } from '../../constants'
 | 
				
			||||||
@@ -41,6 +41,23 @@ export namespace server {
 | 
				
			|||||||
        tabComplete?(sender: string | any, input: string, index?: number): string[]
 | 
					        tabComplete?(sender: string | any, input: string, index?: number): string[]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    @injectable()
 | 
					    @injectable()
 | 
				
			||||||
 | 
					    export class ServerChecker {
 | 
				
			||||||
 | 
					        @inject(ServerType)
 | 
				
			||||||
 | 
					        private serverType: string
 | 
				
			||||||
 | 
					        check(servers: string[]) {
 | 
				
			||||||
 | 
					            // Not set servers -> allow
 | 
				
			||||||
 | 
					            if (!servers || !servers.length) return true
 | 
				
			||||||
 | 
					            // include !type -> deny
 | 
				
			||||||
 | 
					            let denyServers = servers.filter(svr => svr.startsWith("!"))
 | 
				
			||||||
 | 
					            if (denyServers.length !== 0) {
 | 
				
			||||||
 | 
					                return !denyServers.includes(`!${this.serverType}`)
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                // only include -> allow
 | 
				
			||||||
 | 
					                return servers.includes(this.serverType)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    @injectable()
 | 
				
			||||||
    export abstract class ReflectServer implements server.Server {
 | 
					    export abstract class ReflectServer implements server.Server {
 | 
				
			||||||
        protected pipeline: any
 | 
					        protected pipeline: any
 | 
				
			||||||
        protected rootLogger: any
 | 
					        protected rootLogger: any
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -97,6 +97,7 @@ function initialize() {
 | 
				
			|||||||
        let type = detectServer()
 | 
					        let type = detectServer()
 | 
				
			||||||
        console.i18n("ms.core.initialize.detect", { scope: global.scope, type })
 | 
					        console.i18n("ms.core.initialize.detect", { scope: global.scope, type })
 | 
				
			||||||
        container.bind(server.ServerType).toConstantValue(type)
 | 
					        container.bind(server.ServerType).toConstantValue(type)
 | 
				
			||||||
 | 
					        container.bind(server.ServerChecker).toSelf().inSingletonScope()
 | 
				
			||||||
        console.i18n("ms.core.package.initialize", { scope: global.scope, type })
 | 
					        console.i18n("ms.core.package.initialize", { scope: global.scope, type })
 | 
				
			||||||
        require(`${global.scope}/${type}`).default(container)
 | 
					        require(`${global.scope}/${type}`).default(container)
 | 
				
			||||||
        require(`${global.scope}/plugin`)
 | 
					        require(`${global.scope}/plugin`)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user