@aalis/api-approval
v0.1.0
Published
审批契约:approvals 服务描述符(发起、应答、结算、审批面登记与在场)、审批对象的类型与卡片清洗函数
Readme
@aalis/api-approval
审批契约:模型发起、需要 owner 批准的操作以审批对象的形式发起、推给在场的审批面、由 owner 应答、结算后回给发起方。不含服务实现,默认实现是 @aalis/plugin-session-server。
角色
approvals:服务描述符(服务名approvals)。发起方调request(req, signal)等结算;审批面经绑定门面registerSurface(name)登记,随激活撤回,每个客户端attend一次,在场上报与应答都经它。Approval、ApprovalRequest、ApprovalOutcome等:审批对象、请求与结局的类型。approval:created、approval:settled:审批推给审批面、结算时发出的事件。sanitizeForCard(text, limit?):审批卡显示事实之前的清洗,各审批面共用。
安装
pnpm add @aalis/api-approval使用
import { approvals, sanitizeForCard } from '@aalis/api-approval';
// uses: { approvals: optional(approvals) }
const surface = caps.approvals.use.registerSurface('cli');
const attendance = surface.attend({ platform: 'cli', userId: 'console' }, {
requested: approval => showCard(sanitizeForCard(approval.facts.command ?? approval.tool, 400)),
settled: approvalId => closeCard(approvalId),
});
attendance.presence(true);