Skip to content
English

ProtocolRegistry ​

CORE · class · 运行时值

Append-only protocol registry.

Extending Map keeps lookup semantics familiar while set rejects every invalid registration, which makes the instance effectively immutable after wiring.

导入 ​

ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';

其他公开入口:@jangts/agent-core、@jangts/agent-core/types、@jangts/agent-core/protocols。

定义 ​

ts
class ProtocolRegistry<Protocol>

继承或实现: Map<string, Protocol>。

泛型参数 ​

类型参数约束默认类型
Protocol——

构造函数 ​

ts
new ProtocolRegistry<Protocol>(definitions?: Iterable<readonly [string, Protocol]>): ProtocolRegistry<Protocol>
参数类型传递说明
definitionsIterable<readonly [string, Protocol]>可省略—

返回: ProtocolRegistry<Protocol>。

成员目录 ​

成员用途
ids完整输入输出见下方重载。
requireLook up a protocol that must exist.
setRegister a protocol.

成员详情 ​

ids ​

实例方法。

ts
ids(): readonly string[]

无调用参数。

返回: readonly string[]。

require ​

实例方法。

Look up a protocol that must exist.

ts
require(id: string): Protocol

Look up a protocol that must exist.

参数类型传递说明
idstring必需—

返回: Protocol。

等待后的值: Awaited<Protocol>。

set ​

实例方法。

Register a protocol.

ts
set(id: string, protocol: Protocol): ProtocolRegistry<Protocol>

Register a protocol.

参数类型传递说明
idstring必需—
protocolProtocol必需—

返回: ProtocolRegistry<Protocol>。

使用示例 ​

一个可查的协议清单 ​

入门 · Node.js

ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const protocols = new ProtocolRegistry([['reply', { description: '最终正文', terminal: true }]]);
console.log(protocols.require('reply'), protocols.ids());
js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const protocols = new ProtocolRegistry([['reply', { description: '最终正文', terminal: true }]]);
console.log(protocols.require('reply'), protocols.ids());

从类型化声明生成同一目录 ​

配置 · Node.js

ts
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const definitions = [
  { id: 'reply', terminal: true },
  { id: 'lookup', terminal: false },
];
const protocols = new ProtocolRegistry(definitions.map(definition => [definition.id, definition] as const));
console.log(protocols.require('lookup').terminal);
js
import { ProtocolRegistry } from '@jangts/agent-core/protocols';
const definitions = [
    { id: 'reply', terminal: true },
    { id: 'lookup', terminal: false },
];
const protocols = new ProtocolRegistry(definitions.map(definition => [definition.id, definition]));
console.log(protocols.require('lookup').terminal);

接口参考、使用示例与开发指南。