Skip to content

Instantly share code, notes, and snippets.

View frankiesardo's full-sized avatar

Francesco Sardo frankiesardo

View GitHub Profile
(defn batch [in out max-time max-count]
(let [lim-1 (dec max-count)]
(async/go-loop [buf [] t (async/timeout max-time)]
(let [[v p] (async/alts! [in t])]
(cond
(= p t)
(do
(async/>! out buf)
(recur [] (async/timeout max-time)))

AsciiDoc Writer’s Guide

Table of Contents

Header 1

Header 2

@frankiesardo
frankiesardo / request.sh
Last active June 11, 2020 19:09
Clojure deps one liners
clojure -Sdeps '{:deps {clj-http {:mvn/version "3.10.1"}}}' -e '(use (quote clj-http.client)) (get "http://google.com")'
(ns react.helper
#?(:cljs (:require [cljsjs.react]
[cljsjs.create-react-class])))
#?(:cljs
(defn- react-factory [display-name render]
(js/React.createFactory
(js/createReactClass
#js {:displayName display-name
:shouldComponentUpdate
(ns example.core
(:require [react.helper :refer-macros [defc]]
[cljsjs.react.dom]
[goog.object :as obj]))
(enable-console-print!)
(extend-type object
ILookup
(-lookup
(ns react.helper)
(defmacro defc [name argv & body]
`(def ~name (react.helper/component (str '~(get-in &env [:ns :name]) "/" (name '~name)) (fn ~argv ~@body))))
@frankiesardo
frankiesardo / core.cljs
Created February 7, 2020 15:17
stop.worry/love-js
(ns stop-worry.core
(:require ["react" :as react :rename {createElement $}]
["react-dom" :as dom]
[goog.object :as obj]
[cljs.core.async :as async]))
(extend-type object
ILookup
(-lookup
([o k] (obj/get o (name k)))
(ns example.app
(:require
["expo" :as ex]
["react-native" :as rn]
["react" :as react :rename {createElement $}]
[shadow.expo :as expo]))
(defn useEffectiveReducer [reducer handlers initial-state]
(let [[state set-state] (react/useState initial-state)
[queue update-queue] (react/useReducer (fn [state action] (action state)) [])
(ns react.wrapper
#?(:cljs (:require ["react" :as react]
[goog.object :as obj])))
#?(:cljs
(defn component [display-name render]
(let [f (fn [props] (apply render (obj/get props "value")))
m (react/memo f #(= (obj/get %1 "value") (obj/get %2 "value")))]
(obj/set f "displayName" display-name)
@frankiesardo
frankiesardo / reducer-context.core.cljs
Created March 30, 2020 10:41
reducer-context.core
(ns reducer-context.core
(:require ["react" :as react :rename {createElement $}]
["react-dom" :as dom]
[goog.object :as obj]))
(extend-type object
ILookup
(-lookup
([o k] (obj/get o (name k)))
([o k not-found] (obj/get o (name k) not-found))))