Server package: validateOnServer + loadEvents adapter
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 32/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
- 技术栈
- typescript
调研方向
Start by reading the parent issue #25 and blocked issue #26 to understand the shared Validation Core and what this package depends on. Then trace the existing core's public functions and package conventions; this issue names no files or tests. Done means the new runtime-agnostic package implements the adapter and direct exports, has mock-based unit tests, and documents transactional isolation and the exclusion-constraint recommendation.
由索引模型根据 Issue 内容生成。
描述
Parent
https://github.com/TanStack/time/issues/25
What to build
Build `@tanstack/time-server` — a runtime-agnostic package that exposes the shared isomorphic Validation Core with a `loadEvents` adapter seam for authoritative server-side validation. The library never opens a database connection; the consumer implements `loadEvents` against their own DB inside their own write transaction.
The package's key export:
```ts
validateOnServer(write, { loadEvents }, ctx) → Promise<conflicts[]>
```
The library computes `getRequiredRange(write)`, calls `loadEvents(range, ctx)` to get the relevant events from the consumer's DB, then runs the same pure Validation Core as the client's advisory checks. Same logic, authoritative data.
Documentation must prominently state: read-validate-write is only race-free inside one transaction with a consistent/locked view. The library provides rules; the consumer provides isolation. A DB exclusion constraint is the recommended backstop for raw time-overlap.
Acceptance criteria
- `@tanstack/time-server` is a new package in the monorepo with no DOM or browser dependencies
- `validateOnServer(write, { loadEvents }, ctx)` calls `loadEvents` with the required range, then runs the Validation Core
- `loadEvents(range, ctx) → Promise<Event[]>` is the only DB seam; the package opens no connections
- The package works in Node, Bun, Deno, and edge runtimes (no Node-specific APIs)
- Unit tests use a mock `loadEvents` — no real DB required
- The package exports the same Validation Core pure functions directly for consumers who want to call them without the adapter orchestration
- Documentation clearly states the transactional-isolation requirement and the DB exclusion constraint recommendation
Blocked by
- 主要语言
- TypeScript
- 星标
- 620
- 派生
- 6
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
TanStack/time 的其他 Issue
-
难度 5/5 一周以上 新手友好度 5/100
-
enhancement
难度 5/5 一周以上 新手友好度 25/100
-
enhancement
难度 4/5 3-5 天 新手友好度 35/100
-
enhancement
难度 5/5 一周以上 新手友好度 35/100
-
Undo/redo module未关闭enhancement
难度 5/5 一周以上 新手友好度 35/100
相似的 Issue
-
Add: Yichang TV未关闭check:passed streams:add
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
vtselect: data race in Tempo search tags APIs for invalid TraceQL queries可能已有人在做 @Shubham19032004 今天认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 78/100
VictoriaMetrics/VictoriaTraces#304 ·
维护者通常 1 天内回复
-
test: claim-conflict drop leaves both facts active and is never re-proposed (untested review cell)未关闭
难度 2/5 1-3 小时 新手友好度 83/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
microsoft/vscode-pull-request-github#9159 ·
维护者通常 1 天内回复
-
[Feature]: Usage page should show API-equivalent cost and say when a connected plan shows info only未关闭enhancement from-x
难度 2/5 1-3 小时 新手友好度 66/100
nightly-labs/openbot#4867 ·
维护者通常 1 天内回复