@cratis/chronicle. 合同
TypeScript gRPC Contracts for Chronicle 有完全类型的安全和IDE支持.
特征
- 基于承诺的API: 现代同步/等待对所有无用的RPC呼叫的支持
- 可同步流: 服务器流用
AsyncIterable方便的迭代 - 完整类型安全: 由原型定义生成的强型客户端和消息类型
- 64位安全原子弹
int64编号 :uint64数值表示为bigint - 零收发码: 直接客户端方法调用,而不使用手动操作
安装
npm install @cratis/chronicle.contracts
# or
yarn add @cratis/chronicle.contracts
使用量
这个包只包含生成的合同: a *Definition 用于每个 Chronicle gRPC 服务和每个消息的 TypeScript 类型,由 t-原生 页:1 不错的grpc。它没有连接字符串解析、认证或重试处理。 ES模块导入和通用JS require() 使用匹配的运行时间和 TypeScript 声明.
做申请? 使用平面类型脚本客户端, @cratis/chronicle以这些合同为基础。 只有在您正在建立自己的客户端或工具时才能获取此软件包 .
呼叫服务
以下节选显示了一个呼叫的外形. 这不是一个完整的程序: 一个真实的 Crime 服务器在端口服务 TLS 35000 ——在开发中有一个自签名的证书——并且期望在每次通话时都有一个无记名符号,所以您提供频道的证书,并调用适合您的服务器的元数据.
import { createChannel, createClient, ChannelCredentials } from 'nice-grpc';
import { EventStoresDefinition } from '@cratis/chronicle.contracts';
const channel = createChannel('localhost:35000', ChannelCredentials.createSsl());
const eventStores = createClient(EventStoresDefinition, channel);
const response = await eventStores.allEventStores({});
每一个rpc在 .proto 文件成为其客户端上的骆驼拼接方法(AllEventStores 变成 allEventStores) (中文(简体) ). 无效呼叫返回 a Promise; 服务器流调回 AsyncIterable。 。 。 .
类型安全
每个服务客户端和消息都是从原始定义中输入的,包括: int64编号 :uint64 字段为 bigint。 。 。 .
许可证
麻省理工学院