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"
|
borkdude/sci {:git/url "https://github.com/borkdude/sci"
|
||||||
:sha "a8505dd4ee0b5cc7e6f6215f1bbc136c6d4ae7ee"}
|
:sha "a8505dd4ee0b5cc7e6f6215f1bbc136c6d4ae7ee"}
|
||||||
reagent/reagent {:mvn/version "1.0.0"}
|
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 {:mvn/version "17.0.2-0"}
|
||||||
cljsjs/react-dom {: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"}
|
cljsjs/react-dom-server {:mvn/version "17.0.2-0"}
|
||||||
cljs-ajax/cljs-ajax {:mvn/version "0.8.3"}
|
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
|
:aliases
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@
|
||||||
{:resolve {"react" {:target :global
|
{:resolve {"react" {:target :global
|
||||||
:global "React"}
|
:global "React"}
|
||||||
"react-dom" {:target :global
|
"react-dom" {:target :global
|
||||||
:global "ReactDOM"}}}
|
:global "ReactDOM"}
|
||||||
|
"create-react-class" {:target :global
|
||||||
|
:global "createReactClass"}}}
|
||||||
:modules
|
:modules
|
||||||
{:scittle {:entries [scittle.core]}
|
{:scittle {:entries [scittle.core]}
|
||||||
:scittle.reagent {:entries [scittle.reagent]
|
:scittle.reagent {:entries [scittle.reagent]
|
||||||
|
|
@ -19,6 +21,8 @@
|
||||||
:scittle.ajax {:entries [scittle.ajax]
|
:scittle.ajax {:entries [scittle.ajax]
|
||||||
:depends-on #{:scittle}}
|
:depends-on #{:scittle}}
|
||||||
:scittle.makro-plugin {:entries [scittle.makro-plugin]
|
:scittle.makro-plugin {:entries [scittle.makro-plugin]
|
||||||
|
:depends-on #{:scittle}}
|
||||||
|
:scittle.qlkit {:entries [scittle.qlkit]
|
||||||
:depends-on #{:scittle}}}
|
:depends-on #{:scittle}}}
|
||||||
:build-hooks [(shadow.cljs.build-report/hook)]
|
:build-hooks [(shadow.cljs.build-report/hook)]
|
||||||
:output-dir "resources/public/js"
|
:output-dir "resources/public/js"
|
||||||
|
|
|
||||||
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