See source code below.
| (ns dustingetz.y2025.gene2 | |
| (:require [hyperfiddle.electric3 :as e] | |
| [hyperfiddle.electric-dom3 :as dom] | |
| [missionary.core :as m])) | |
| (e/defn MyTextarea | |
| [v & {:keys [rows cols] | |
| :or {rows 10 cols 50}}] | |
| (dom/textarea (dom/props {:rows rows :cols cols :value v}) | |
| ; this returns a stream of values |
| (ns dustingetz.edn-viewer0 | |
| (:require [clojure.datafy :refer [datafy]] | |
| [clojure.core.protocols :refer [nav]] | |
| [contrib.data :refer [unqualify]] | |
| [dustingetz.easy-table :refer [TableScroll Load-css]] | |
| [dustingetz.flatten-document :refer [flatten-nested]] | |
| [hyperfiddle.electric3 :as e] | |
| [hyperfiddle.electric3-contrib :refer [Tap]] | |
| [hyperfiddle.electric-dom3 :as dom] | |
| [hyperfiddle.electric-forms0 :refer [Checkbox*]] |
| (ns hf-docs-site.demos.explorer | |
| (:require [clojure.datafy :refer [datafy]] | |
| [clojure.core.protocols :refer [nav]] | |
| #?(:clj clojure.java.io) | |
| [contrib.data :refer [treelister clamp-left]] | |
| [contrib.str :refer [includes-str?]] | |
| [contrib.datafy-fs #?(:clj :as :cljs :as-alias) fs] | |
| [hyperfiddle.electric3 :as e] | |
| [hyperfiddle.electric-dom3 :as dom] | |
| [hyperfiddle.electric-scroll0 :refer [Scroll-window IndexRing]] |
| (ns dustingetz.metaobject | |
| "https://github.com/NikolaySuslov/electric-objmodel" | |
| (:require [contrib.assert :refer [check]] | |
| [hyperfiddle.electric3 :as e] | |
| [hyperfiddle.electric-dom3 :as dom] | |
| [hyperfiddle.incseq :as i])) | |
| (e/defn Some [xs] (first (e/as-vec xs))) | |
| (e/defn Vtable-lookup [vtable mname] |
| (ns contrib.ui.remark | |
| (:require | |
| ;["@hyperfiddle/remark-generic-extensions/lib/browser.min" :as remark-generic-extensions] ; works in node | |
| [clojure.set] | |
| [clojure.string] | |
| ; Refrain from contrib imports so this is more suitable for userland | |
| [goog.object] | |
| [prop-types] ; used as js/propTypes.object | |
| [reagent.core] | |
| ;[remark] ; works in node |
Electric Clojure implements a form of arrowized continuous time dataflow programming with extensions for network-transparent function composition.
Easy:
query-pokemon-list for the querye/offload to move it to a thread pool.
e/offload throws Pending until the query finishes, and then the exception "goes away"