feat: add ServerChecker
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
parent
fe1ee3883a
commit
3ea72f0aac
@ -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`)
|
||||||
|
Loading…
Reference in New Issue
Block a user