Prefactor: extract Validation Core from CalendarCore
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Refatoração
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- typescript
- Domínio
- backend
Direção de pesquisa
Start by reading CalendarCore and tracing its availability, dependency-constraint, and recurrence validation logic, along with the existing tests. Identify how each can operate on plain event objects and config without store, viewport, DOM, database, or Temporal dependencies. Done means CalendarCore delegates to independently tested pure functions and all existing tests pass unchanged.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Parent
https://github.com/TanStack/time/issues/25
What to build
Extract the availability, dependency-propagation, and recurrence validation logic currently fused into `CalendarCore` into pure, isomorphic functions with the signature `validate(write, events, config) → conflicts`. These functions must have zero dependencies on the store, viewport, DOM, or any database.
This is the mandatory first step before any modularization can happen. It is a pure refactor — no new behavior, no public API changes. The existing `CalendarCore` continues to call these functions internally; callers see no difference.
The extraction creates the seam that makes the following possible:
- the module-stage pipeline (both client and server can run the same stages)
- the `loadEvents` adapter in the server package
- the client/server Data Strategy
Acceptance criteria
- Availability conflict detection, dependency-constraint checking (FS/SS/FF/SF), and recurrence validation each exist as standalone pure functions importable independently of `CalendarCore`
- Each function accepts plain event objects and config; returns a conflicts/errors array; has no side effects
- `CalendarCore` delegates to these functions internally — all existing tests continue to pass unchanged
- No `Temporal` objects, store references, or DOM references appear in the extracted functions' signatures
- Unit tests cover the extracted functions directly (not through `CalendarCore`)
Blocked by
None — can start immediately.
- Linguagem predominante
- TypeScript
- Estrelas
- 620
- Forks
- 6
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de TanStack/time
-
Dependency DashboardAberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 5/100
-
Client/server Data StrategyAbertaenhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 32/100
-
enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
Todas as issues de TanStack/time
Issues semelhantes
-
Add: Shop On TV SDAbertacheck:passed streams:add
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
Mantenedores costumam responder em até 1 dia
-
bug implicit-state
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
book-layout.spec fails when the similar-books rail holds other projects' booksTalvez já em andamento @praetorianer777 assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
praetorianer777/GoTome#373 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Tencent/tdesign-react#4465 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
area:cards enhancement ready-for-agent
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
fil-donadoni/tolaria#8883 ·
Mantenedores costumam responder em até 1 dia