43 lines
1.4 KiB
Clojure
43 lines
1.4 KiB
Clojure
(require '[babashka.pods :as pods])
|
|
(prn (pods/load-pod ["clojure" "-A:test-pod"])) ;; should return nil
|
|
(require '[pod.test-pod :as pod])
|
|
|
|
(def stream-results (atom []))
|
|
(def done-prom (promise))
|
|
(pods/invoke "pod.test-pod" 'pod.test-pod/range-stream [1 10]
|
|
{:handlers {:success (fn [value]
|
|
(swap! stream-results conj value))
|
|
:done (fn []
|
|
(deliver done-prom :ok))}})
|
|
@done-prom
|
|
|
|
(def ex-result
|
|
(try (pod.test-pod/error 1 2 3)
|
|
(catch clojure.lang.ExceptionInfo e
|
|
(str (ex-message e) " / " (ex-data e)))))
|
|
|
|
(pod.test-pod/print "hello" "print" "this" "debugging" "message")
|
|
(pod.test-pod/print-err "hello" "print" "this" "error")
|
|
|
|
(pod/do-twice (prn :foo))
|
|
|
|
(def callback-result (promise))
|
|
(pods/invoke "pod.test-pod" 'pod.test-pod/add-sync [1 2]
|
|
{:handlers {:success
|
|
(fn [value]
|
|
(deliver callback-result value))}})
|
|
|
|
(def error-result (promise))
|
|
(pods/invoke "pod.test-pod" 'pod.test-pod/add-sync ["1" 2]
|
|
{:handlers
|
|
{:error (fn [m]
|
|
(deliver error-result m))}})
|
|
|
|
[(pod/assoc {:a 1} :b 2)
|
|
(pod.test-pod/add-sync 1 2 3)
|
|
@stream-results
|
|
ex-result
|
|
(pod.test-pod/return-nil)
|
|
@callback-result
|
|
(:ex-message @error-result)
|
|
(:ex-data @error-result)]
|