docs: bring README in line with strict mode, routing, and the HTTP boundary
ci / verify (push) Successful in 47s

Updates the architecture/dependency diagrams and omissions table to match
what actually shipped: RemoteData<T> (not <E, T>), @angular/router moved
from "avoided" to "used", the new shared/infrastructure/http.ts fetch
boundary, and the CI/coverage gates now in place. Removes the now-false
"CI pipeline" omission row and adds honest rows for the linter and
per-environment config this template still deliberately skips.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-08-01 10:30:02 +02:00
co-authored by Claude Sonnet 5
parent c895929f58
commit 7dddf875a2
2 changed files with 64 additions and 42 deletions
+4 -6
View File
@@ -34,7 +34,7 @@ flowchart LR
Three plain ingredients, no framework required:
- **State** — a plain object describing what's true right now. Example: `{ count: 0 }`.
- **A message** — a plain object describing *what happened*. Example:
- **A message** — a plain object describing _what happened_. Example:
`{ type: 'increment' }`. (Some call this an "action" — same thing.)
- **A pure update function** — a function that takes the current state and a message,
and returns the **new** state. "Pure" just means: same inputs always give the same
@@ -122,9 +122,7 @@ export type UsersModel = {
recentlyViewed: number[];
};
export type UsersMsg =
| { type: 'select'; id: number }
| { type: 'closeDetail' };
export type UsersMsg = { type: 'select'; id: number } | { type: 'closeDetail' };
export const initialUsersModel: UsersModel = {
selectedUserId: null,
@@ -145,7 +143,7 @@ export function reduceUsers(model: UsersModel, msg: UsersMsg): UsersModel {
```
This is the point where a single `signal<number | null>` stopped being enough:
`recentlyViewed` is a second field that changes *together* with `selectedUserId`, and
`recentlyViewed` is a second field that changes _together_ with `selectedUserId`, and
`reduce` is the one place that keeps them in sync.
## 5. Using it from a component
@@ -189,7 +187,7 @@ consistent.
## 6. Async actions — the store doesn't replace `resource()`
Keep these concerns separate: `resource()` still owns *fetching*; the store only owns
Keep these concerns separate: `resource()` still owns _fetching_; the store only owns
synchronous state that's derived from, or reacts to, what's fetched. Don't move `fetch`
calls into `reduce``reduce` must stay pure (no side effects), so a network call has no
business being inside one.