@ever-works/ 合同
共享类型Script类型定义和跨Ever Works平台使用的无运行时间合同.
概览
这个软件包包含了其他每个软件包和app所依赖的交叉类型原始——工作项目,域模型,形成计划,以及API合同. 它的运行时间依赖性为零,同时作为无害环境管理和CJS发布,从而可以从Node.js,Next.js,浏览器,以及插件系统中消费.
@ever-works/contracts 是一个纯型包:没有NestJS,没有LangChain,没有I/O. 需要由API,网络应用,以及独立插件共享的任何东西都在这里居住.
安装
pnpm add @ever-works/contracts
子路径导出
| 导入路径 | 目录 |
|---|---|
@ever-works/contracts | 再出口 item, (中文(简体) ), domain,以及 form (默认桶) |
@ever-works/contracts/item | ItemData,项目生命周期状态,项目字段形状 |
@ever-works/contracts/domain | DomainType,域类元数据 |
@ever-works/contracts/form | 窗体字段计划( E)x-widget, (中文(简体) ), x-secret(单位:百分数) |
@ever-works/contracts/api | REST API 请求/响应形状 |
使用量
import type { ItemData } from '@ever-works/contracts/item';
import type { DomainType } from '@ever-works/contracts/domain';
import type { JsonSchema } from '@ever-works/contracts/form';
const item: ItemData = {
name: 'Example',
slug: 'example'
// ...
};
为什么是单独的包裹?
- 插件保持轻量级. 插件只导入类型——没有NestJS,没有DB,没有代理运行时间.
- 类型漂移在编译时被捕获 . API,web,代理,和插件都共享相同的真理源.
- 越跑越快的安全. 纯TypeScript表示它为Node,浏览器,Edge以及不附带条件出口的Workers所构建.
构建
pnpm --filter @ever-works/contracts build # tsup -> ESM + CJS + .d.ts
pnpm --filter @ever-works/contracts type-check # tsc --noEmit
文档
许可证
AGPL-3.0 导弹