AbilityProcessor
AbilityProcessor处理一次调用、一次返回的Ability请求,并提供Ability注册入口。
接口
ts
import type { AbilityProcessor } from '@nyirusu/nasdk/types'
interface AbilityProcessor extends Processor {
register(item: AbilityProcessorHandler): void
}
interface AbilityProcessorHandler {
name: string
description: string
execute(payload: unknown): unknown | Promise<unknown>
}Ability没有过程消息或中途信号,因此通常不会调用onProcess()。
默认实现
NACAB通过nacab.nacpAdaptor提供默认AbilityProcessor:
ts
app.bindProcessor('ability', nacab.nacpAdaptor)list
list()返回nacab.listAbility(),使已注册Ability的名称与描述进入NApp声明。
push
Adaptor将Processor调用直接映射到nacab.invoke():
text
Processor.push(spec, hooks)
→ nacab.invoke(spec.target, spec.payload)
→ fulfilled → hooks.onResponse(result, true)
→ rejected → hooks.onResponse(
{ error },
false,
'processor-failed',
)未知Ability和Handler执行异常都使用processor-failed。具体错误信息放在Response payload,不放入whyNotOk。
register
register(item)原样转发给nacab.register(item)。
绑定AbilityProcessor时,NApp会通过该入口注册自己的NApp.*内建Ability。因此自定义AbilityProcessor必须实现register()。
NACP如何接收并调用Processor见onRequest。

