Some checks are pending
Test, Build, and Deploy / test-build-deploy (push) Waiting to run
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
34 lines
1.2 KiB
Plaintext
34 lines
1.2 KiB
Plaintext
;; lib/dream/api.sx — Dream-on-SX public facade.
|
|
;; Loaded last; bundles the modules into a batteries-included surface. The full
|
|
;; public API is the `dream-*` functions across types/router/middleware/session/
|
|
;; flash/form/websocket/static/error/cors/json/run; this file adds convenience
|
|
;; app builders. Depends on all other dream modules.
|
|
|
|
(define dream-version "0.1.0")
|
|
|
|
;; standard middleware stack (pure — no IO): error catch outermost, then
|
|
;; content-type sniffing. Logger is opt-in since it performs host IO.
|
|
(define
|
|
dream-defaults
|
|
(fn
|
|
(handler)
|
|
(dream-pipeline (list dream-catch dream-content-type) handler)))
|
|
|
|
;; build a complete app handler from a route list with the default stack
|
|
(define
|
|
dream-make-app
|
|
(fn (routes) (dream-defaults (dream-router routes))))
|
|
|
|
;; build an app and wrap it with extra middleware (outermost first)
|
|
(define
|
|
dream-make-app-with
|
|
(fn
|
|
(middlewares routes)
|
|
(dream-pipeline middlewares (dream-make-app routes))))
|
|
|
|
;; one-call serve: routes + opts -> installed on the host
|
|
(define
|
|
dream-serve
|
|
(fn (routes opts) (dream-run-opts (dream-make-app routes) opts)))
|
|
(define dream-serve-port (fn (routes port) (dream-serve routes {:port port})))
|