Debug: log has-data type and cache status in try-client-route
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
var NIL = Object.freeze({ _nil: true, toString: function() { return "nil"; } });
|
var NIL = Object.freeze({ _nil: true, toString: function() { return "nil"; } });
|
||||||
var SX_VERSION = "2026-03-07T00:52:37Z";
|
var SX_VERSION = "2026-03-07T01:03:44Z";
|
||||||
|
|
||||||
function isNil(x) { return x === NIL || x === null || x === undefined; }
|
function isNil(x) { return x === NIL || x === null || x === undefined; }
|
||||||
function isSxTruthy(x) { return x !== false && !isNil(x); }
|
function isSxTruthy(x) { return x !== false && !isNil(x); }
|
||||||
@@ -2059,9 +2059,10 @@ return domAppendToHead(link); }, domQueryAll(container, "link[rel=\"stylesheet\"
|
|||||||
var pageName = get(match, "name");
|
var pageName = get(match, "name");
|
||||||
return (isSxTruthy(sxOr(isNil(contentSrc), isEmpty(contentSrc))) ? (logWarn((String("sx:route no content for ") + String(pathname))), false) : (function() {
|
return (isSxTruthy(sxOr(isNil(contentSrc), isEmpty(contentSrc))) ? (logWarn((String("sx:route no content for ") + String(pathname))), false) : (function() {
|
||||||
var target = resolveRouteTarget(targetSel);
|
var target = resolveRouteTarget(targetSel);
|
||||||
return (isSxTruthy(isNil(target)) ? (logWarn((String("sx:route target not found: ") + String(targetSel))), false) : (isSxTruthy(get(match, "has-data")) ? (function() {
|
return (isSxTruthy(isNil(target)) ? (logWarn((String("sx:route target not found: ") + String(targetSel))), false) : (logInfo((String("sx:route has-data=") + String(get(match, "has-data")) + String(" type=") + String(typeOf(get(match, "has-data"))) + String(" page=") + String(pageName))), (isSxTruthy(get(match, "has-data")) ? (function() {
|
||||||
var cacheKey = pageDataCacheKey(pageName, params);
|
var cacheKey = pageDataCacheKey(pageName, params);
|
||||||
var cached = pageDataCacheGet(cacheKey);
|
var cached = pageDataCacheGet(cacheKey);
|
||||||
|
logInfo((String("sx:route cache-key=") + String(cacheKey) + String(" cached=") + String(!isSxTruthy(isNil(cached)))));
|
||||||
return (isSxTruthy(cached) ? (function() {
|
return (isSxTruthy(cached) ? (function() {
|
||||||
var env = merge(closure, params, cached);
|
var env = merge(closure, params, cached);
|
||||||
var rendered = tryEvalContent(contentSrc, env);
|
var rendered = tryEvalContent(contentSrc, env);
|
||||||
@@ -2076,7 +2077,7 @@ return (function() {
|
|||||||
var env = merge(closure, params);
|
var env = merge(closure, params);
|
||||||
var rendered = tryEvalContent(contentSrc, env);
|
var rendered = tryEvalContent(contentSrc, env);
|
||||||
return (isSxTruthy(isNil(rendered)) ? (logInfo((String("sx:route server (eval failed) ") + String(pathname))), false) : (swapRenderedContent(target, rendered, pathname), true));
|
return (isSxTruthy(isNil(rendered)) ? (logInfo((String("sx:route server (eval failed) ") + String(pathname))), false) : (swapRenderedContent(target, rendered, pathname), true));
|
||||||
})()));
|
})())));
|
||||||
})());
|
})());
|
||||||
})());
|
})());
|
||||||
})(); };
|
})(); };
|
||||||
|
|||||||
@@ -636,40 +636,45 @@
|
|||||||
(let ((target (resolve-route-target target-sel)))
|
(let ((target (resolve-route-target target-sel)))
|
||||||
(if (nil? target)
|
(if (nil? target)
|
||||||
(do (log-warn (str "sx:route target not found: " target-sel)) false)
|
(do (log-warn (str "sx:route target not found: " target-sel)) false)
|
||||||
(if (get match "has-data")
|
(do
|
||||||
;; Data page: check cache, else resolve asynchronously
|
(log-info (str "sx:route has-data=" (get match "has-data")
|
||||||
(let ((cache-key (page-data-cache-key page-name params))
|
" type=" (type-of (get match "has-data"))
|
||||||
(cached (page-data-cache-get cache-key)))
|
" page=" page-name))
|
||||||
(if cached
|
(if (get match "has-data")
|
||||||
;; Cache hit — render immediately
|
;; Data page: check cache, else resolve asynchronously
|
||||||
(let ((env (merge closure params cached))
|
(let ((cache-key (page-data-cache-key page-name params))
|
||||||
(rendered (try-eval-content content-src env)))
|
(cached (page-data-cache-get cache-key)))
|
||||||
(if (nil? rendered)
|
(log-info (str "sx:route cache-key=" cache-key " cached=" (not (nil? cached))))
|
||||||
(do (log-warn (str "sx:route cached eval failed for " pathname)) false)
|
(if cached
|
||||||
(do
|
;; Cache hit: render immediately
|
||||||
(log-info (str "sx:route client+cache " pathname))
|
(let ((env (merge closure params cached))
|
||||||
(swap-rendered-content target rendered pathname)
|
(rendered (try-eval-content content-src env)))
|
||||||
true)))
|
(if (nil? rendered)
|
||||||
;; Cache miss — fetch, cache, render
|
(do (log-warn (str "sx:route cached eval failed for " pathname)) false)
|
||||||
(do
|
(do
|
||||||
(log-info (str "sx:route client+data " pathname))
|
(log-info (str "sx:route client+cache " pathname))
|
||||||
(resolve-page-data page-name params
|
(swap-rendered-content target rendered pathname)
|
||||||
(fn (data)
|
true)))
|
||||||
(page-data-cache-set cache-key data)
|
;; Cache miss: fetch, cache, render
|
||||||
(let ((env (merge closure params data))
|
(do
|
||||||
(rendered (try-eval-content content-src env)))
|
(log-info (str "sx:route client+data " pathname))
|
||||||
(if (nil? rendered)
|
(resolve-page-data page-name params
|
||||||
(log-warn (str "sx:route data eval failed for " pathname))
|
(fn (data)
|
||||||
(swap-rendered-content target rendered pathname)))))
|
(page-data-cache-set cache-key data)
|
||||||
true)))
|
(let ((env (merge closure params data))
|
||||||
;; Pure page: render immediately
|
(rendered (try-eval-content content-src env)))
|
||||||
(let ((env (merge closure params))
|
(if (nil? rendered)
|
||||||
(rendered (try-eval-content content-src env)))
|
(log-warn (str "sx:route data eval failed for " pathname))
|
||||||
(if (nil? rendered)
|
(swap-rendered-content target rendered pathname)))))
|
||||||
(do (log-info (str "sx:route server (eval failed) " pathname)) false)
|
true)))
|
||||||
(do
|
;; Pure page: render immediately
|
||||||
(swap-rendered-content target rendered pathname)
|
(let ((env (merge closure params))
|
||||||
true))))))))))))
|
(rendered (try-eval-content content-src env)))
|
||||||
|
(if (nil? rendered)
|
||||||
|
(do (log-info (str "sx:route server (eval failed) " pathname)) false)
|
||||||
|
(do
|
||||||
|
(swap-rendered-content target rendered pathname)
|
||||||
|
true)))))))))))))
|
||||||
|
|
||||||
|
|
||||||
(define bind-client-route-link
|
(define bind-client-route-link
|
||||||
|
|||||||
Reference in New Issue
Block a user