Skip to content

Commit 3b49711

Browse files
author
dnolen
committed
change cljs.build.api/install-node-deps! and cljs.build.api/get-deps
so they can take compiler opts directly
1 parent 01884de commit 3b49711

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

src/main/clojure/cljs/build/api.clj

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,24 @@
221221
;; =============================================================================
222222
;; Node.js / NPM dependencies
223223

224+
(defn compiler-opts? [m]
225+
(and (map? m)
226+
(or (contains? m :output-to)
227+
(contains? m :modules)
228+
(contains? m :npm-deps)
229+
(contains? m :main)
230+
(contains? m :optimizations)
231+
(contains? m :foreign-libs))))
232+
224233
(defn install-node-deps!
225234
"EXPERIMENTAL: Install the supplied dependencies via NPM. dependencies must be
226-
a map of name to version."
235+
a map of name to version or a valid compiler options map."
227236
([dependencies]
228-
(install-node-deps! dependencies
229-
(when-not (nil? env/*compiler*)
230-
(:options @env/*compiler*))))
237+
(if (compiler-opts? dependencies)
238+
(install-node-deps! (:npm-deps dependencies) dependencies)
239+
(install-node-deps! dependencies
240+
(when-not (nil? env/*compiler*)
241+
(:options @env/*compiler*)))))
231242
([dependencies opts]
232243
{:pre [(map? dependencies)]}
233244
(closure/check-npm-deps opts)
@@ -237,13 +248,16 @@
237248
(defn get-node-deps
238249
"EXPERIMENTAL: Get the Node.js dependency graph of the supplied dependencies.
239250
Dependencies must be a sequence of strings or symbols naming packages or paths
240-
within packages (e.g. [react \"react-dom/server\"]. Assumes dependencies have
241-
been been previously installed, either by `cljs.build.api/install-node-deps!`
242-
or by an NPM client, and reside in the `node_modules` directory."
251+
within packages (e.g. [react \"react-dom/server\"] or a valid compiler options
252+
map. Assumes dependencies have been been previously installed, either by
253+
`cljs.build.api/install-node-deps!` or by an NPM client, and reside in the
254+
`node_modules` directory."
243255
([dependencies]
244-
(get-node-deps dependencies
245-
(when-not (nil? env/*compiler*)
246-
(:options @env/*compiler*))))
256+
(if (compiler-opts? dependencies)
257+
(get-node-deps (keys (:npm-deps dependencies)) dependencies)
258+
(get-node-deps
259+
(when-not (nil? env/*compiler*)
260+
(:options @env/*compiler*)))))
247261
([dependencies opts]
248262
{:pre [(sequential? dependencies)]}
249263
(closure/index-node-modules

0 commit comments

Comments
 (0)