dream: router dispatch + path params + scopes + 27 tests
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m9s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m9s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,7 +45,7 @@ The user-facing story: rose-ash users who'd never touch s-expressions might writ
|
||||
The five types: `request`, `response`, `handler = request -> response`, `middleware = handler -> handler`, `route`. Everything else is a function over these.
|
||||
|
||||
- [x] **Core types** in `lib/dream/types.sx`: request/response records, route record.
|
||||
- [ ] **Router** in `lib/dream/router.sx`:
|
||||
- [x] **Router** in `lib/dream/router.sx`:
|
||||
- `dream-get path handler`, `dream-post path handler`, etc. for all HTTP methods.
|
||||
- `dream-scope prefix middlewares routes` — prefix mount with middleware chain.
|
||||
- `dream-router routes` — dispatch tree, returns handler; no match → 404.
|
||||
@@ -112,6 +112,15 @@ Confirm scope before starting; some of these may be addable as Dream-internal he
|
||||
constructors + accessors; smart response constructors (html/text/json/empty/
|
||||
not-found/redirect); `dream-coerce-response` wraps bare strings; query-string
|
||||
parsing. Conformance runner `lib/dream/conformance.sh` modelled on flow's.
|
||||
- **2026-06-07 — Router** (`lib/dream/router.sx`, 27 tests). `dream-get/post/put/
|
||||
delete/patch/head/options/any` route constructors; `dream-router` flattens routes
|
||||
(incl. nested scopes) and dispatches by method+path, first-match-wins, 404 on no
|
||||
match. Path matching is recursive over `/`-split segments: literal, `:name` binds
|
||||
a param, `**` catch-all binds remaining path under key `"**"`. Trailing slashes and
|
||||
query strings are ignored for routing. `dream-scope prefix mws routes` prepends the
|
||||
prefix and folds the middleware chain (`m1 @@ m2 @@ h`, first = outermost) onto each
|
||||
route's handler; nests correctly (inner mw innermost). Shared `dr/apply-middlewares`
|
||||
fold will back `dream-pipeline`.
|
||||
|
||||
## Blockers
|
||||
|
||||
|
||||
Reference in New Issue
Block a user