@ 模拟器/ 核心
HTTP服务器,内存存储器,插件接口,以及模拟服务插件的中间软件.
部分 模拟 ——为CI和无网络沙盒提供本地出入口替换服务.
内部HTTP层基于 浩诺'是API和设计. 谢和田由介和上野贡献. 见 第三次议会 NoTICES.md 为了Hono的版权和麻省理工学院许可通知,也包含在这个npm包中.
安装
npm install @emulators/core
概览
核心提供共享的基础设施 @emulators/* 服务插件基于 :
- 存储 普通的内存商店,有打字机
Collection<T>支持 CRUD 、 索引、 过滤和页码 - 服务器 自动端口管理的HTTP服务器;
serve监听127.0.0.1默认并接受明示hostname网络访问 - 中间软件 ——无记名证书认证,错误处理,CORS
- 用户 共享授权/同意的页面渲染与捆绑字体
- 持久性 ——用于状态耐久性的可插接保存/装入适配器
持久性
文件持久性
对于本地开发,使用内置文件适配器:
import { filePersistence } from '@emulators/core'
persistence: filePersistence('.emulate/state.json')
自定义适配器
任何对象 load 财务报告和审定财务报表 save 方法行之有效。 添加 initialize 当某项服务产生持久身份时:
const kvAdapter = {
async load() { return await kv.get('emulate-state') },
async save(data: string) { await kv.set('emulate-state', data) },
async initialize(data: string) { // atomic create-or-read
await kv.set('emulate-state', data, { nx: true })
return (await kv.get('emulate-state'))!
},
}
持久性适配器在冷起(负载)和每次突变请求后被调用(save). 保存通过内部排队来序列化,以防止种族条件.
链接
自定义仿真器
传递创建的定义 defineEmulator 从 emulate 改为 services[name].emulator 在框架适配器。 同一定义贯穿于国家综合指数和 createEmulator({ service: definition, listen: false }) 在测试。 自定义条目接受可选的检查员和持久性适配器. 流化反应机构在完成或取消时会持续状态变化,在清理前会重置并关闭取消活动流. 附加的 Set- Cookie 头部保留已响应的 cookie 。 保持状态 在定义的国营工厂, 并等待操作员 close() 在测试。 见 自定义仿真器指南。 。 。 .