add qlkit
This commit is contained in:
parent
ff7d7b6135
commit
cf843793c2
4 changed files with 70 additions and 3 deletions
4
deps.edn
4
deps.edn
|
|
@ -5,10 +5,14 @@
|
|||
borkdude/sci {:git/url "https://github.com/borkdude/sci"
|
||||
:sha "a8505dd4ee0b5cc7e6f6215f1bbc136c6d4ae7ee"}
|
||||
reagent/reagent {:mvn/version "1.0.0"}
|
||||
cljsjs/create-react-class {:mvn/version "15.6.3-1"}
|
||||
cljsjs/react {:mvn/version "17.0.2-0"}
|
||||
cljsjs/react-dom {:mvn/version "17.0.2-0"}
|
||||
cljsjs/react-dom-server {:mvn/version "17.0.2-0"}
|
||||
cljs-ajax/cljs-ajax {:mvn/version "0.8.3"}
|
||||
;;qlkit/qlkit {:mvn/version "0.5.0-SNAPSHOT"}
|
||||
qlkit/qlkit {:local/root "../../klmplay/qlkit"}
|
||||
sablono/sablono {:mvn/version "0.8.6"}
|
||||
}
|
||||
|
||||
:aliases
|
||||
|
|
|
|||
|
|
@ -11,7 +11,9 @@
|
|||
{:resolve {"react" {:target :global
|
||||
:global "React"}
|
||||
"react-dom" {:target :global
|
||||
:global "ReactDOM"}}}
|
||||
:global "ReactDOM"}
|
||||
"create-react-class" {:target :global
|
||||
:global "createReactClass"}}}
|
||||
:modules
|
||||
{:scittle {:entries [scittle.core]}
|
||||
:scittle.reagent {:entries [scittle.reagent]
|
||||
|
|
@ -19,7 +21,9 @@
|
|||
:scittle.ajax {:entries [scittle.ajax]
|
||||
:depends-on #{:scittle}}
|
||||
:scittle.makro-plugin {:entries [scittle.makro-plugin]
|
||||
:depends-on #{:scittle}}}
|
||||
:depends-on #{:scittle}}
|
||||
:scittle.qlkit {:entries [scittle.qlkit]
|
||||
:depends-on #{:scittle}}}
|
||||
:build-hooks [(shadow.cljs.build-report/hook)]
|
||||
:output-dir "resources/public/js"
|
||||
:devtools {:repl-pprint true}}}}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
(ns scittle.makro-plugin
|
||||
(:require-macros [scittle.makros :refer
|
||||
[add-slash-makro add-c-makro]])
|
||||
[add-slash-makro add-c-makro]])
|
||||
(:require
|
||||
[sci.core :as sci]
|
||||
[scittle.core :as scittle]
|
||||
|
|
|
|||
59
src/scittle/qlkit.cljs
Normal file
59
src/scittle/qlkit.cljs
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
(ns scittle.qlkit
|
||||
(:require [qlkit.core :as ql :refer-macros [defcomponent*]]
|
||||
[sci.core :as sci]
|
||||
[scittle.core :as scittle]
|
||||
[sablono.core :as html :refer-macros [html html*]]
|
||||
[sablono.interpreter :as si]))
|
||||
|
||||
(def qns (sci/create-ns 'qlkit.core nil))
|
||||
|
||||
(defn ^:macro defcomponent-fn [_form _env comp-name [_ q] [_ [_ m _] [_ h]]]
|
||||
`(defcomponent* ~comp-name
|
||||
(query ~q)
|
||||
(render [this ~m state]
|
||||
(html ~h)))
|
||||
|
||||
#_(defcomponent* comp-name (query q) (render r (html [:p "hu"])))
|
||||
|
||||
)
|
||||
|
||||
(defn ^:macro defcomponent+ [form env nam & bodies]
|
||||
(apply ql/defcomponent+ form env nam bodies))
|
||||
|
||||
(defn random-uuid-fn []
|
||||
(random-uuid))
|
||||
|
||||
(def qlkit-namespace
|
||||
{'add-class (sci/copy-var ql/add-class qns)
|
||||
;; 'defcomponent* (sci/copy-var defcomponent-fn qns)
|
||||
'defcomponent* (sci/copy-var defcomponent+ qns)
|
||||
'transact!* (sci/copy-var ql/transact!* qns)
|
||||
'update-state!* (sci/copy-var ql/update-state!* qns)
|
||||
'create-instance (sci/copy-var ql/create-instance qns)
|
||||
'get-query (sci/copy-var ql/get-query qns)
|
||||
'parse-children (sci/copy-var ql/parse-children qns)
|
||||
'parse-children-remote (sci/copy-var ql/parse-children-remote qns)
|
||||
'parse-children-sync (sci/copy-var ql/parse-children-sync qns)
|
||||
'mount (sci/copy-var ql/mount qns)
|
||||
|
||||
'classes (sci/copy-var ql/classes qns)
|
||||
'random-uuid (sci/copy-var random-uuid-fn qns)})
|
||||
|
||||
(def sns (sci/create-ns 'sablono.core nil))
|
||||
|
||||
(defn ^:macro html+ [form env html-form]
|
||||
(html* [:p "in sablono"]))
|
||||
|
||||
(def sablono-core-namespace
|
||||
{'html (sci/copy-var html+ sns)})
|
||||
|
||||
(def sins (sci/create-ns 'sablono.interpreter nil))
|
||||
|
||||
(def sablono-interpreter-ns
|
||||
{'interpret (sci/copy-var si/interpret sins)})
|
||||
|
||||
(scittle/register-plugin!
|
||||
::qlkit
|
||||
{:namespaces {'qlkit.core qlkit-namespace
|
||||
'sablono.core sablono-core-namespace
|
||||
'sablono.interpreter sablono-interpreter-ns}})
|
||||
Loading…
Add table
Add a link
Reference in a new issue