Fix handler-source and component-source lookups

Both used (env-get name) with one arg which always returned nil.
Now use eval-expr + make-symbol with cek-try fallback, same pattern
as the handler dispatch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-01 14:20:48 +00:00
parent 87a48ac2aa
commit 5c2fc9b9c0

View File

@@ -3,7 +3,7 @@
(fn
(name)
(let
((val (env-get name)))
((val (cek-try (fn () (eval-expr (make-symbol name))) (fn (err) nil))))
(if
(or (component? val) (island? val))
(let
@@ -24,11 +24,15 @@
(fn
(name)
(let
((val (env-get name)))
((handler-key (str "handler:" name))
(val
(cek-try
(fn () (eval-expr (make-symbol handler-key)))
(fn (err) nil))))
(if
(not (nil? val))
(pretty-print val)
(error (str "Handler not found: " name))))))
(str ";;; Handler not found: " name)))))
(define _spec-dirs (list "spec" "web" "shared/sx/ref" "lib"))