19 lines
666 B
Clojure
19 lines
666 B
Clojure
(ns hooks.macros.components
|
|
(:require [clj-kondo.hooks-api :as api]
|
|
[clojure.string :refer [capitalize]]))
|
|
|
|
|
|
(defn defcomponent [{:keys [node]}]
|
|
(let [[name fields & [generator constructor destructor]] (rest (:children node))
|
|
constructor (symbol (str "->Component" (capitalize name)))
|
|
map-constructor (symbol (str "map->Component" (capitalize name)))
|
|
generator (symbol (str "" name))]
|
|
(println name)
|
|
(println "wutwut")
|
|
|
|
{:node (api/list-node
|
|
[(api/token-node 'declare)
|
|
(api/token-node constructor)
|
|
(api/token-node map-constructor)
|
|
(api/token-node generator)])}))
|