website.clj

website.git ยท Tickets

website.git > main > 105221d > files / src / dev / grahp / website.clj

(ns dev.grahp.website
  (:require
   [clojure.spec.alpha :as s]
   [dev.grahp.website.path :as path]))

(defmacro spec
  ([k s] `(s/def ~k ~s))
  ([k doc s] `(s/def ~k (vary-meta (s/spec ~s)
                                   assoc :doc ~doc))))

(defmacro schema
  ([keys] `(s/keys :opt [~@keys])))

(spec ::path path/path?)
(spec ::page (schema [::path]))