|
1328 | 1328 | :relpaths {(util/path src) |
1329 | 1329 | (util/ns->relpath (first (:provides opts)) (:ext opts))}}))))) |
1330 | 1330 |
|
1331 | | -(defn module-for-entry [entry modules] |
1332 | | - (->> modules |
1333 | | - (filter |
1334 | | - (fn [[module-name {:keys [entries]}]] |
1335 | | - (some #{(-> entry munge str)} |
1336 | | - (map #(-> % munge str) entries)))) |
1337 | | - ffirst)) |
1338 | | - |
1339 | 1331 | #?(:clj |
1340 | 1332 | (defn emit-source [src dest ext opts] |
1341 | 1333 | (with-open [out ^java.io.Writer (io/make-writer dest {})] |
|
1387 | 1379 | :name ns-name})) |
1388 | 1380 | (emit ast) |
1389 | 1381 | (recur (rest forms) ns-name deps)))) |
1390 | | - (do |
1391 | | - (when-let [module (and (contains? (set (vals deps)) 'cljs.loader) |
1392 | | - (module-for-entry ns-name (:modules opts)))] |
1393 | | - (emit |
1394 | | - (ana/analyze env `(cljs.loader/set-loaded! ~module) |
1395 | | - nil opts))) |
1396 | | - (let [sm-data (when *source-map-data* @*source-map-data*) |
1397 | | - ret (merge |
1398 | | - {:ns (or ns-name 'cljs.user) |
1399 | | - :macros-ns (:macros-ns opts) |
1400 | | - :provides [ns-name] |
1401 | | - :requires (if (= ns-name 'cljs.core) |
1402 | | - (set (vals deps)) |
1403 | | - (cond-> (conj (set (vals deps)) 'cljs.core) |
1404 | | - (get-in @env/*compiler* [:options :emit-constants]) |
1405 | | - (conj ana/constants-ns-sym))) |
1406 | | - :file dest |
1407 | | - :out-file dest |
1408 | | - :source-file src} |
1409 | | - (when sm-data |
1410 | | - {:source-map (:source-map sm-data)}))] |
1411 | | - (when (and sm-data (= :none (:optimizations opts))) |
1412 | | - (emit-source-map src dest sm-data |
1413 | | - (merge opts {:ext ext :provides [ns-name]}))) |
1414 | | - (let [path (.getPath (.toURL ^File dest))] |
1415 | | - (swap! env/*compiler* assoc-in [::compiled-cljs path] ret)) |
1416 | | - (let [{:keys [output-dir cache-analysis]} opts] |
1417 | | - (when (and (true? cache-analysis) output-dir) |
1418 | | - (ana/write-analysis-cache ns-name |
1419 | | - (ana/cache-file src (ana/parse-ns src) output-dir :write) |
1420 | | - src)) |
1421 | | - ret))))))))))) |
| 1382 | + (let [sm-data (when *source-map-data* @*source-map-data*) |
| 1383 | + ret (merge |
| 1384 | + {:ns (or ns-name 'cljs.user) |
| 1385 | + :macros-ns (:macros-ns opts) |
| 1386 | + :provides [ns-name] |
| 1387 | + :requires (if (= ns-name 'cljs.core) |
| 1388 | + (set (vals deps)) |
| 1389 | + (cond-> (conj (set (vals deps)) 'cljs.core) |
| 1390 | + (get-in @env/*compiler* [:options :emit-constants]) |
| 1391 | + (conj ana/constants-ns-sym))) |
| 1392 | + :file dest |
| 1393 | + :out-file dest |
| 1394 | + :source-file src} |
| 1395 | + (when sm-data |
| 1396 | + {:source-map (:source-map sm-data)}))] |
| 1397 | + (when (and sm-data (= :none (:optimizations opts))) |
| 1398 | + (emit-source-map src dest sm-data |
| 1399 | + (merge opts {:ext ext :provides [ns-name]}))) |
| 1400 | + (let [path (.getPath (.toURL ^File dest))] |
| 1401 | + (swap! env/*compiler* assoc-in [::compiled-cljs path] ret)) |
| 1402 | + (let [{:keys [output-dir cache-analysis]} opts] |
| 1403 | + (when (and (true? cache-analysis) output-dir) |
| 1404 | + (ana/write-analysis-cache ns-name |
| 1405 | + (ana/cache-file src (ana/parse-ns src) output-dir :write) |
| 1406 | + src)) |
| 1407 | + ret)))))))))) |
1422 | 1408 |
|
1423 | 1409 | #?(:clj |
1424 | 1410 | (defn compile-file* |
|
0 commit comments