feat: update Autowired & support command alias

Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
2020-09-22 17:33:59 +08:00
parent af85703bd9
commit 05e9feee9b
9 changed files with 96 additions and 71 deletions

View File

@ -35,6 +35,7 @@ export function cmd(metadata: interfaces.CommandMetadata = {}) {
metadata.paramtypes = Reflect.getMetadata("design:paramtypes", target, key)
const previousMetadata: Map<string, interfaces.CommandMetadata> = getPluginCommandMetadata(target)
previousMetadata.set(metadata.name, metadata)
metadata.alias?.forEach((name) => previousMetadata.set(name, metadata))
Reflect.defineMetadata(METADATA_KEY.cmd, previousMetadata, target.constructor)
}
}
@ -52,6 +53,7 @@ export function tab(metadata: interfaces.CommandMetadata = {}) {
metadata.paramtypes = Reflect.getMetadata("design:paramtypes", target, key)
const previousMetadata: Map<string, interfaces.CommandMetadata> = getPluginTabCompleterMetadata(target)
previousMetadata.set(metadata.name, metadata)
metadata.alias?.forEach((name) => previousMetadata.set(name, metadata))
Reflect.defineMetadata(METADATA_KEY.tab, previousMetadata, target.constructor)
}
}

View File

@ -35,6 +35,10 @@ export namespace interfaces {
executor?: string
}
export interface CommandMetadata extends ExecMetadata {
/**
* 命令别名
*/
alias?: string[]
/**
* 命令描述
*/