This is the base example project that is the assumed a starting point for most of the examples in the Figwheel Main documentation.
You can run it with the Clojure Tools in your terminal via:
$ clj -m figwheel.main -b dev -r
(ns todo-server.core | |
(:require | |
[cljs.nodejs :as nodejs] | |
[figwheel.client :as fw])) | |
(nodejs/enable-util-print!) | |
(defonce express (nodejs/require "express")) | |
(defonce serve-static (nodejs/require "serve-static")) | |
(defonce http (nodejs/require "http")) |
This is the base example project that is the assumed a starting point for most of the examples in the Figwheel Main documentation.
You can run it with the Clojure Tools in your terminal via:
$ clj -m figwheel.main -b dev -r
(ns ^:figwheel-hooks tilelayout.core | |
(:require | |
[goog.dom :as gdom] | |
[goog.crypt.base64 :as base64] | |
[goog.events :as gevent] | |
[clojure.string :as string] | |
[cljs.reader :refer [read-string]]) | |
(:import [goog History])) | |
;; TILE LAYOUT GENERATION |
Recent improvements to the ClojureScript compiler have greatly simplified setting up development versus production outputs.
This example uses Figwheel as something that you want to exclude for production, but the pattern is general.
With this simple setup you only need one html file/view and it will work for developement and production.
(ns figwheel.simple | |
(:require | |
[clojure.string :as string] | |
#?@(:cljs [[goog.object :as gobj]]) | |
#?@(:clj [[clojure.walk :as walk] | |
[cljs.repl.browser :as brow] | |
[cljs.repl :as repl] | |
[cljs.env :as env] | |
[cljs.analyzer :as ana] | |
[cljs.build.api :as bapi] |
### Keybase proof | |
I hereby claim: | |
* I am bhauman on github. | |
* I am bhauman (https://keybase.io/bhauman) on keybase. | |
* I have a public key ASBhQeHtmPegp3_31bd9Tlz33dt9MtLWXwjgGFugHrCAkwo | |
To claim this, I am signing this object: |
/* | |
* This script provides an example of loading a ClojureScript project | |
* that has been compiled using optimizations level :none. | |
* | |
* There are many environments that might not support the default | |
* method of writing script tags to load files. | |
* | |
* I wrote this to solve the problem of loading compiled ClojureScript | |
* into Chrome extentions. | |
* |
(ns cljs.compiler-options-schema | |
(:require | |
[clojure.spec :as s] | |
[clojure.string :as string] | |
;; for initial dev | |
[clojure.test :refer [deftest is testing]])) | |
(defn non-blank-string? [x] (and (string? x) (not (string/blank? x)))) | |
(defonce ^:private registry-ref (atom {})) |
From: Bruce Hauman <bhauman@gmail.com> | |
Date: Fri, 10 Feb 2017 11:26:46 -0500 | |
Subject: [PATCH] CLJS-ThreadIterrupt: Check for thread interuptions for | |
cleaner shutdown in some cases | |
--- | |
src/main/clojure/cljs/repl.cljc | 12 +++++++----- | |
1 file changed, 7 insertions(+), 5 deletions(-) | |
diff --git a/src/main/clojure/cljs/repl.cljc b/src/main/clojure/cljs/repl.cljc |
"use strict"; | |
var position_1 = require("../../common/position"); | |
// this value causes popover and target edges to line up on 50px targets | |
exports.MIN_ARROW_SPACING = 18; | |
function computeArrowOffset(sideLength, arrowSize, minimum) { | |
if (minimum === void 0) { minimum = exports.MIN_ARROW_SPACING; } | |
return Math.max(Math.round((sideLength - arrowSize) / 2), minimum); | |
} | |
exports.computeArrowOffset = computeArrowOffset; | |
function getPopoverTransformOrigin(position, arrowSize, targetDimensions) { |