From 9587311412eb9e6251b58b0e22953dfcb83901b1 Mon Sep 17 00:00:00 2001 From: Richard Newman Date: Thu, 22 Sep 2016 15:56:20 -0700 Subject: [PATCH] Include deps.cljs giving externs for Node.js consumers; normalize build output. cljsbuild using leiningen projects that depend on Datomish will automatically include the externs. --- .gitignore | 6 -- project.clj | 57 ++++--------------- release-browser/test_include_node.js | 2 - release-browser/wrap_bare.sh | 4 +- release-node/test_include_node.js | 2 +- release-node/wrap_bare.sh | 4 +- .../{externs.js => externs/datomish.js} | 0 src/node/deps.cljs | 1 + src/node/{externs.js => externs/datomish.js} | 0 test/js/tests.js | 2 +- 10 files changed, 17 insertions(+), 61 deletions(-) delete mode 100644 release-browser/test_include_node.js rename src/browser/{externs.js => externs/datomish.js} (100%) create mode 100644 src/node/deps.cljs rename src/node/{externs.js => externs/datomish.js} (100%) diff --git a/.gitignore b/.gitignore index bb6ab5a9..d7fe2318 100644 --- a/.gitignore +++ b/.gitignore @@ -22,12 +22,6 @@ pom.xml pom.xml.asc /.cljs_node_repl/ /.cljs_rhino_repl/ -/release-browser -/release-browser/datomish.js -/release-browser/datomish.bare.js -/release-node -/release-node/datomish.js -/release-node/datomish.bare.js /addon/built/index.js /addon/node_modules/ /addon/release/datomish-test.xpi diff --git a/project.clj b/project.clj index 3089b31b..e1f2b6f5 100644 --- a/project.clj +++ b/project.clj @@ -1,4 +1,4 @@ -(defproject datomish "0.1.0-SNAPSHOT" +(defproject datomish "0.1.1-SNAPSHOT" :description "A persistent, embedded knowledge base inspired by Datomic and DataScript." :url "https://github.com/mozilla/datomish" :license {:name "Mozilla Public License Version 2.0" @@ -24,18 +24,18 @@ { :release-node { - :source-paths ["src/node"] + :source-paths ["src/common" "src/node"] :assert false :compiler { + ;; :externs specified in deps.cljs. :elide-asserts true - :externs ["src/node/externs.js"] :hashbang false :language-in :ecmascript5 :language-out :ecmascript5 :optimizations :advanced - :output-dir "release-node" - :output-to "release-node/datomish.bare.js" + :output-dir "target/release-node" + :output-to "target/release-node/datomish.bare.js" :output-wrapper false :parallel-build true :pretty-print true @@ -60,12 +60,12 @@ :compiler { :elide-asserts true - :externs ["src/browser/externs.js"] + :externs ["src/browser/externs/datomish.js"] :language-in :ecmascript5 :language-out :ecmascript5 :optimizations :advanced - :output-dir "release-browser" - :output-to "release-browser/datomish.bare.js" + :output-dir "target/release-browser" + :output-to "target/release-browser/datomish.bare.js" :output-wrapper false :parallel-build true :preloads [datomish.preload] @@ -75,25 +75,9 @@ } :notify-command ["release-browser/wrap_bare.sh"]} - :advanced - {:source-paths ["src/node"] - :compiler - { - :externs ["src/node/externs.js"] - :language-in :ecmascript5 - :language-out :ecmascript5 - :output-dir "target/advanced" - :output-to "target/advanced/datomish.js" - :optimizations :advanced - :parallel-build true - :pretty-print true - :source-map "target/advanced/datomish.js.map" - :target :nodejs - }} - :test { - :source-paths ["src/node" "test"] + :source-paths ["src/common" "src/node" "test"] :compiler { :language-in :ecmascript5 @@ -125,26 +109,5 @@ :doo {:build "test"} - :clean-targets ^{:protect false} - [ - "target" - "release-node/cljs/" - "release-node/cljs_promises/" - "release-node/clojure/" - "release-node/datascript/" - "release-node/datomish/" - "release-node/honeysql/" - "release-node/taoensso/" - "release-node/datomish.bare.js" - "release-node/datomish.js" - "release-browser/cljs/" - "release-browser/cljs_promises/" - "release-browser/clojure/" - "release-browser/datascript/" - "release-browser/datomish/" - "release-browser/honeysql/" - "release-browser/taoensso/" - "release-browser/datomish.bare.js" - "release-browser/datomish.js" - ] + :clean-targets ^{:protect false} ["target"] ) diff --git a/release-browser/test_include_node.js b/release-browser/test_include_node.js deleted file mode 100644 index 683261cd..00000000 --- a/release-browser/test_include_node.js +++ /dev/null @@ -1,2 +0,0 @@ -var d = require('./datomish'); -console.log(d.q("[:find ?e ?v :where [?e \"name\" ?v] {:x :y}]")); diff --git a/release-browser/wrap_bare.sh b/release-browser/wrap_bare.sh index 6d5ae26a..ff03a0d4 100755 --- a/release-browser/wrap_bare.sh +++ b/release-browser/wrap_bare.sh @@ -2,6 +2,6 @@ set -e -(cat release-browser/wrapper.prefix; cat release-browser/datomish.bare.js; cat release-browser/wrapper.suffix) > release-browser/datomish.js +(cat release-browser/wrapper.prefix; cat target/release-browser/datomish.bare.js; cat release-browser/wrapper.suffix) > target/release-browser/datomish.js -echo "Packed release-browser/datomish.js" +echo "Packed target/release-browser/datomish.js" diff --git a/release-node/test_include_node.js b/release-node/test_include_node.js index 683261cd..2abc19d9 100644 --- a/release-node/test_include_node.js +++ b/release-node/test_include_node.js @@ -1,2 +1,2 @@ -var d = require('./datomish'); +var d = require('../target/release-node/datomish'); console.log(d.q("[:find ?e ?v :where [?e \"name\" ?v] {:x :y}]")); diff --git a/release-node/wrap_bare.sh b/release-node/wrap_bare.sh index 13707e8f..50e0916e 100755 --- a/release-node/wrap_bare.sh +++ b/release-node/wrap_bare.sh @@ -2,6 +2,6 @@ set -e -(cat release-node/wrapper.prefix && cat release-node/datomish.bare.js && cat release-node/wrapper.suffix) > release-node/datomish.js +(cat release-node/wrapper.prefix && cat target/release-node/datomish.bare.js && cat release-node/wrapper.suffix) > target/release-node/datomish.js -echo "Packed release-node/datomish.js" +echo "Packed target/release-node/datomish.js" diff --git a/src/browser/externs.js b/src/browser/externs/datomish.js similarity index 100% rename from src/browser/externs.js rename to src/browser/externs/datomish.js diff --git a/src/node/deps.cljs b/src/node/deps.cljs new file mode 100644 index 00000000..c41ac085 --- /dev/null +++ b/src/node/deps.cljs @@ -0,0 +1 @@ +{:externs ["externs/datomish.js"]} diff --git a/src/node/externs.js b/src/node/externs/datomish.js similarity index 100% rename from src/node/externs.js rename to src/node/externs/datomish.js diff --git a/test/js/tests.js b/test/js/tests.js index e9e20a44..e69b55c5 100644 --- a/test/js/tests.js +++ b/test/js/tests.js @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. -var datomish = require("../../release-node/datomish.js"); +var datomish = require("../../target/release-node/datomish.js"); var schema = { "name": "pages",