Skip to content

Commit 41fa44e

Browse files
committed
change handle-js-modules to take only-required? flag, REPLs will
want to start with node_modules indexed and will provide no js-sources
1 parent 4e85b04 commit 41fa44e

1 file changed

Lines changed: 29 additions & 26 deletions

File tree

src/main/clojure/cljs/closure.clj

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2386,33 +2386,36 @@
23862386
"Given all Cljs sources (build inputs and dependencies in classpath)
23872387
23882388
- index all the node node modules
2389-
- process the JS modules (preprocess + convert to Closure JS)o
2389+
- process the JS modules (preprocess + convert to Closure JS)
23902390
- save js-dependency-index for compilation"
2391-
[{:keys [npm-deps target] :as opts} js-sources compiler-env]
2392-
(let [;; Find all the top-level Node packages and their files
2393-
top-level-modules (reduce (fn [acc m]
2394-
(reduce (fn [acc p]
2395-
(assoc acc p m))
2396-
acc
2397-
(:provides m)))
2398-
{}
2399-
(index-node-modules-dir))
2400-
requires (set (mapcat deps/-requires js-sources))
2401-
;; Select Node files that are required by Cljs code,
2402-
;; and create list of all their dependencies
2403-
required-node-modules (set/intersection (set (keys top-level-modules)) requires)]
2404-
(if-not (= target :nodejs)
2405-
(let [opts (-> opts
2406-
(update :foreign-libs
2407-
(fn [libs]
2408-
(into (index-node-modules required-node-modules)
2409-
(expand-libs libs))))
2410-
process-js-modules)]
2411-
(swap! compiler-env assoc :js-dependency-index (deps/js-dependency-index opts))
2412-
opts)
2413-
(do
2414-
(swap! compiler-env update-in [:node-module-index] (fnil into #{}) (map str required-node-modules))
2415-
opts))))
2391+
([opts js-sources compiler-env]
2392+
(handle-js-modules opts js-sources compiler-env true))
2393+
([{:keys [npm-deps target] :as opts} js-sources compiler-env only-required?]
2394+
(let [;; Find all the top-level Node packages and their files
2395+
top-level (reduce
2396+
(fn [acc m]
2397+
(reduce (fn [acc p] (assoc acc p m)) acc (:provides m)))
2398+
{} (index-node-modules-dir))
2399+
requires (set (mapcat deps/-requires js-sources))
2400+
;; Select Node files that are required by Cljs code,
2401+
;; and create list of all their dependencies
2402+
node-required (if only-required?
2403+
(set/intersection (set (keys top-level)) requires)
2404+
(keys top-level))]
2405+
(if-not (= target :nodejs)
2406+
(let [opts (-> opts
2407+
(update :foreign-libs
2408+
(fn [libs]
2409+
(into (index-node-modules node-required)
2410+
(expand-libs libs))))
2411+
process-js-modules)]
2412+
(swap! compiler-env assoc :js-dependency-index
2413+
(deps/js-dependency-index opts))
2414+
opts)
2415+
(do
2416+
(swap! compiler-env update-in [:node-module-index]
2417+
(fnil into #{}) (map str node-required))
2418+
opts)))))
24162419

24172420
(defn build
24182421
"Given a source which can be compiled, produce runnable JavaScript."

0 commit comments

Comments
 (0)