Skip to content

Instantly share code, notes, and snippets.

View frankiesardo's full-sized avatar

Francesco Sardo frankiesardo

View GitHub Profile
@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 react.helper)
(defmacro defc [name argv & body]
`(def ~name (react.helper/component (str '~(get-in &env [:ns :name]) "/" (name '~name)) (fn ~argv ~@body))))
(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
#?(: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
@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")'

AsciiDoc Writer’s Guide

Table of Contents

Header 1

Header 2

(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)))
{:paths ["/"]
:deps {}}
(ns tinylog.core
(:require [clj-http.client :as http]
[cheshire.core :as json]
[clojure.core.async :as async]))
(defprotocol Logger
(log [this msg]))
(defn map* [f logger]
(reify Logger
(ns example.log)
(defprotocol Logger
(log [this msg]))
(defn map* [f logger]
(reify Logger
(log [this msg] (log logger (f msg)))))