File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 26562656 (util/mkdirs outfile)
26572657 (spit outfile (slurp (io/resource (str " cljs/bootstrap_" target-str " .js" )))))))
26582658
2659+ (defn compile-inputs
2660+ [inputs opts]
2661+ (env/ensure
2662+ (let [sources (-> inputs (add-dependency-sources opts))
2663+ opts (handle-js-modules opts sources env/*compiler*)
2664+ sources (-> (remove (comp #{:seed } :type ) sources)
2665+ deps/dependency-order
2666+ (compile-sources false opts)
2667+ (#(map add-core-macros-if-cljs-js %))
2668+ (add-js-sources opts) deps/dependency-order
2669+ (->> (map #(source-on-disk opts %)) doall))]
2670+ ; ; this is an optimization for handle-js-modules
2671+ (swap! env/*compiler* update-in [:options ] merge opts)
2672+ sources)))
2673+
2674+ (defn compile-ns
2675+ " Compiles a namespace and all of its transitive dependencies."
2676+ [ns opts]
2677+ (compile-inputs (find-sources ns opts) opts))
2678+
26592679(defn build
26602680 " Given a source which can be compiled, produce runnable JavaScript."
26612681 ([source opts]
Original file line number Diff line number Diff line change 196196 only once."
197197 ([repl-env ns ] (load-namespace repl-env ns nil ))
198198 ([repl-env ns opts]
199- (let [ns (if (and (seq? ns ) (= (first ns ) 'quote)) (second ns )ns)
200- sources (-> (cljsc/-find-sources ns (merge (env->opts repl-env) opts))
201- (cljsc/add-dependency-sources opts))
202- opts (cljsc/handle-js-modules opts sources env/*compiler*)
203- _ (swap! env/*compiler* update-in [:options ] merge opts)
204- sources (-> sources deps/dependency-order
205- (cljsc/compile-sources false opts)
206- (#(map cljsc/add-core-macros-if-cljs-js %))
207- (cljsc/add-js-sources opts) deps/dependency-order
208- (->> (map #(cljsc/source-on-disk opts %)) doall))]
199+ (let [ns (if (and (seq? ns ) (= (first ns ) 'quote)) (second ns ) ns )
200+ ; ; We need to use a seed because many things (npm deps etc.) cannot be
201+ ; ; *directly* compiled, they must be a part of some ClojureScript ns
202+ ; ; form - thus we fabricate a seed
203+ sources (->> (cljsc/compile-inputs
204+ [{:requires [(name ns )] :type :seed }]
205+ (merge (env->opts repl-env) opts))
206+ (remove (comp #{[" goog" ]} :provides )))]
209207 (if (:output-dir opts)
210208 ; ; REPLs that read from :output-dir just need to add deps,
211209 ; ; environment will handle actual loading - David
You can’t perform that action at this time.
0 commit comments