SuperAPI AI 工具集

spacetimedb-typescript

编程与开发

查看项目

更新于 10-15 21:12

技能介绍

SpacetimeDB TypeScript SDK 用于构建直接连接 SpacetimeDB 模块的实时 TypeScript 客户端,适用于 Web 应用、Node.js、Deno、Bun 等 JavaScript 运行时,提供类型安全的数据库访问、自动同步和响应式更新。

使用前需从服务端模块生成绑定:spacetime generate --lang typescript --out-dir ./src/module_bindings --project-path ./server。安装:npm install spacetimedb;Node.js 18-21 需另装 undici,Node.js 22+ 与浏览器开箱即用。

核心用法:从 ./module_bindings 导入 DbConnection,用 DbConnection.builder() 配置 withUri、withModuleName、withToken 等并 build();通过 subscriptionBuilder().subscribe() 订阅表数据,支持多条 SQL 查询、类型化 query 构建器及 subscribeToAllTables();用 connection.db.table.iter()/count()/find() 读取缓存数据,并用 onInsert、onDelete、onUpdate 监听实时变更。调用 reducer 必须用对象语法,如 connection.reducers.createPlayer({ name: 'Alice' }),并可通过连接回调获取提交或失败状态。React 集成提供 SpacetimeDBProvider、useSpacetimeDB 和 useTable,useTable 返回 [rows, isLoading],connectionBuilder 需用 useMemo 缓存以避免重复连接。

需注意:不要导入不存在的 @clockworklabs/spacetimedb-sdk 等幻觉包;不要编辑生成的绑定,应重新生成;reducer 是事务性的、确定性且不返回数据;视图只能使用索引查找,不能用 .iter();procedures 处于 beta,数据库访问需用 ctx.withTx(tx => tx.db...)。认证 token 可持久化存储,失效时需清理并重连。