SuperAPI AI 工具集

typescript-server

编程与开发

查看项目

更新于 10-15 19:50

技能介绍

用途:这是 SpacetimeDB 的 TypeScript 服务端模块 SDK 参考,适合在 TypeScript 中定义数据库表、reducer 和模块逻辑。

主要能力:用 table() 定义表并以 schema() 绑定后默认导出;列类型通过 t 构建器声明(如 t.u64()、t.string()、t.identity()),支持 primaryKey、autoInc、unique、index、default 等修饰符;支持单列与多列索引。reducer 用 spacetimedb.reducer(...) 创建,导出名即 reducer 名。提供 init、clientConnected、clientDisconnected 生命周期钩子。支持视图(view/anonymousView)、查询构建器(ctx.from、where、semijoin)、客户端可见性过滤器、过程(procedure)与入站/出站 HTTP。

使用方式:schema 构建器与模块导出从 spacetimedb/server 导入,ScheduleAt、Timestamp、ConnectionId 从根包 spacetimedb 导入,Range 从 spacetimedb/server 导入。数据库操作通过 ctx.db 访问器进行 insert、find、filter、iter、update、delete。ctx 是发送者身份、时间与随机数的唯一来源,模块内不可用标准库时钟与 RNG。

限制:表名须为 snake_case;schema({...}) 只放表定义;命名运行时导出仅保留给已注册值,普通辅助函数与常量不要导出。过程回调为同步,不可用 async/await。出站 HTTP 用 ctx.http.fetch,无 get/post 便捷方法。入站 HTTP 处理器同步返回 SyncResponse,处理器上下文不暴露 ctx.db,需用 ctx.withTx。不要用字符串构造 Identity。

适用场景:需要以 TypeScript 编写 SpacetimeDB 服务端模块、表结构、reducer、定时任务、视图与 HTTP 接口的开发者。