Skip to content

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。

Released under the MIT License.