diff --git a/sx/sx/data/helpers.sx b/sx/sx/data/helpers.sx index e80ceb2b..8c966d1d 100644 --- a/sx/sx/data/helpers.sx +++ b/sx/sx/data/helpers.sx @@ -38,17 +38,26 @@ (csrf (get hdef "csrf")) (returns (or (get hdef "returns") "element")) (params (or (get hdef "params") (list))) - (body (get hdef "body"))) - (pretty-print - (list - (make-symbol "defhandler") - (make-symbol name) - :path path - :method (make-keyword method) - :csrf csrf - :returns returns - params - body))))))) + (body (get hdef "body")) + (parts (list (make-symbol "defhandler") (make-symbol name)))) + (let + ((parts (append parts (list (make-keyword "path") path))) + (parts + (append + parts + (list (make-keyword "method") (make-keyword method)))) + (parts + (if + (not csrf) + (append parts (list (make-keyword "csrf") false)) + parts)) + (parts + (if + (not (= returns "element")) + (append parts (list (make-keyword "returns") returns)) + parts)) + (parts (append parts (list params body)))) + (highlight (pretty-print parts)))))))) (define _spec-dirs (list "spec" "web" "shared/sx/ref" "lib"))