Upgrade to pod callbacks (babashka/babashka.pods#6)
This commit is contained in:
parent
9b966920a0
commit
4df3e56557
3 changed files with 14 additions and 12 deletions
|
|
@ -1 +1 @@
|
||||||
Subproject commit 8f16139ab6e73a91aeb5fe97b398b30670e3fc9b
|
Subproject commit fb6e739aeed8ada6720318b788549f72d37640e8
|
||||||
|
|
@ -5,4 +5,5 @@
|
||||||
|
|
||||||
(def pods-namespace
|
(def pods-namespace
|
||||||
{'load-pod (with-meta pods/load-pod
|
{'load-pod (with-meta pods/load-pod
|
||||||
{:sci.impl/op :needs-ctx})})
|
{:sci.impl/op :needs-ctx})
|
||||||
|
'invoke pods/invoke})
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
(:require [babashka.pods :as pods]
|
(:require [babashka.pods :as pods]
|
||||||
[bencode.core :as bencode]
|
[bencode.core :as bencode]
|
||||||
[cheshire.core :as cheshire]
|
[cheshire.core :as cheshire]
|
||||||
[clojure.core.async :as async]
|
|
||||||
[clojure.edn :as edn]
|
[clojure.edn :as edn]
|
||||||
[clojure.java.io :as io])
|
[clojure.java.io :as io])
|
||||||
(:import [java.io PushbackInputStream])
|
(:import [java.io PushbackInputStream])
|
||||||
|
|
@ -54,7 +53,11 @@
|
||||||
[{"name" "pod.test-pod"
|
[{"name" "pod.test-pod"
|
||||||
"vars" [{"name" "add-sync"}
|
"vars" [{"name" "add-sync"}
|
||||||
{"name" "range-stream"
|
{"name" "range-stream"
|
||||||
"async" "true"}
|
"code" "
|
||||||
|
(defn range-stream [val-cb done-cb & args]
|
||||||
|
(babashka.pods/invoke \"pod.test-pod\" 'pod.test-pod/range-stream* args
|
||||||
|
{:handlers {:success #(val-cb (:value %)) :done (fn [m] (done-cb m))}})
|
||||||
|
nil)"}
|
||||||
{"name" "assoc"}
|
{"name" "assoc"}
|
||||||
{"name" "error"}
|
{"name" "error"}
|
||||||
{"name" "print"}
|
{"name" "print"}
|
||||||
|
|
@ -75,7 +78,7 @@
|
||||||
{"value" (write-fn (apply + args))
|
{"value" (write-fn (apply + args))
|
||||||
"id" id
|
"id" id
|
||||||
"status" ["done"]})
|
"status" ["done"]})
|
||||||
pod.test-pod/range-stream
|
pod.test-pod/range-stream*
|
||||||
(let [rng (apply range args)]
|
(let [rng (apply range args)]
|
||||||
(doseq [v rng]
|
(doseq [v rng]
|
||||||
(write
|
(write
|
||||||
|
|
@ -129,13 +132,11 @@
|
||||||
(do
|
(do
|
||||||
(debug "Running synchronous add test")
|
(debug "Running synchronous add test")
|
||||||
(prn ((resolve 'pod.test-pod/add-sync) 1 2 3))
|
(prn ((resolve 'pod.test-pod/add-sync) 1 2 3))
|
||||||
(debug "Running async stream test")
|
(debug "Running async range test")
|
||||||
(let [chan ((resolve 'pod.test-pod/range-stream) 1 10)]
|
(let [prom (promise)]
|
||||||
(loop []
|
((resolve 'pod.test-pod/range-stream)
|
||||||
(when-let [x (async/<!! chan)]
|
prn (fn [_] (deliver prom :ok)) 1 10)
|
||||||
(debug "Received" x)
|
@prom)
|
||||||
(prn x)
|
|
||||||
(recur))))
|
|
||||||
(debug "Running exception test")
|
(debug "Running exception test")
|
||||||
(prn (try ((resolve 'pod.test-pod/error) 1 2 3)
|
(prn (try ((resolve 'pod.test-pod/error) 1 2 3)
|
||||||
(catch clojure.lang.ExceptionInfo e
|
(catch clojure.lang.ExceptionInfo e
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue