Dependencies module (FS/SS/FF/SF)

未關閉
#32 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
5/5
預估耗時
一週以上
新手友好度
35/100
Issue 類型
功能
描述清晰度
基本清楚
活躍度
冷清
技術堆疊
typescript
領域
api

研究方向

Read parent issue #25 and the module API work in issue #28 first; this issue is blocked by #28. Then inspect CalendarCore and the existing write pipeline to understand where dependency handling belongs. Done means the module meets the listed creation, cycle validation, cascading, validation, and tree-shaking criteria.

由索引模型根據 Issue 內容生成。

描述

enhancement

Parent

https://github.com/TanStack/time/issues/25

What to build

Extract the FS/SS/FF/SF event dependency system into a proper module. When registered, the module adds dependency-aware transformation to the write pipeline: moving a predecessor event automatically cascades the required shift to all dependents in topological order.

This module is the reason the Timeline/Gantt view exists as a product. Extracting it from `CalendarCore` into a module also fixes the current architecture where Gantt semantics are baked into the Calendar kernel.

Acceptance criteria

  • `DependenciesModule` plugs into the kernel via the module API (#28)
  • `createDependency(sourceId, targetId, type)` creates a link and validates it does not form a cycle
  • Moving a predecessor cascades the correct shift to all dependents (FS: finish-to-start, SS: start-to-start, FF: finish-to-finish, SF: start-to-finish)
  • Cascade propagates transitively through the dependency graph in topological order
  • `validateEventDependencies()` checks whether placing an event satisfies its predecessor constraints
  • Circular dependency detection rejects the link with a descriptive error before it is committed
  • Removing the `DependenciesModule` causes dependency code to tree-shake out of the bundle

Blocked by

https://github.com/TanStack/time/issues/28

主要語言
TypeScript
星號
620
分支
6
PR 合併指標
30 天內沒有已合併 PR

環境準備

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

TanStack/time 的其他 Issue

查看 TanStack/time 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。