CLJS
basic-lein-cljs.core
cljs.analyzer
cljs.compiler
CLJS
cljs.core
CLJS
cljs.core.async
CLJS
cljs.core.async.impl.buffers
CLJS
cljs.core.async.impl.channels
CLJS
cljs.core.async.impl.dispatch
CLJS
cljs.core.async.impl.ioc-helpers
CLJS
cljs.core.async.impl.protocols
CLJS
cljs.core.async.impl.timers
cljs.env
cljs.externs
CLJS
cljs.js
cljs.js-deps
CLJS
cljs.pprint
CLJS
cljs.reader
CLJS
cljs.repl
cljs.source-map
CLJS
cljs.source-map
cljs.source-map.base64
CLJS
cljs.source-map.base64
cljs.source-map.base64-vlq
CLJS
cljs.source-map.base64-vlq
CLJS
cljs.spec.alpha
CLJS
cljs.spec.gen.alpha
cljs.tagged-literals
CLJS
cljs.tools.reader
CLJS
cljs.tools.reader.edn
CLJS
cljs.tools.reader.impl.commons
CLJS
cljs.tools.reader.impl.errors
CLJS
cljs.tools.reader.impl.inspect
CLJS
cljs.tools.reader.impl.utils
CLJS
cljs.tools.reader.reader-types
cljs.util
clojure.core
clojure.core.async
clojure.core.async.impl.buffers
clojure.core.async.impl.channels
clojure.core.async.impl.concurrent
clojure.core.async.impl.dispatch
clojure.core.async.impl.exec.threadpool
clojure.core.async.impl.ioc-macros
clojure.core.async.impl.mutex
clojure.core.async.impl.protocols
clojure.core.async.impl.timers
clojure.core.cache
clojure.core.memoize
clojure.core.protocols
clojure.core.server
clojure.data.json
clojure.data.priority-map
clojure.edn
clojure.instant
clojure.java.io
clojure.main
clojure.pprint
clojure.reflect
clojure.repl
clojure.set
CLJS
clojure.set
clojure.spec.alpha
clojure.spec.gen.alpha
clojure.string
CLJS
clojure.string
clojure.tools.analyzer
clojure.tools.analyzer.ast
clojure.tools.analyzer.env
clojure.tools.analyzer.jvm
clojure.tools.analyzer.jvm.utils
clojure.tools.analyzer.passes
clojure.tools.analyzer.passes.add-binding-atom
clojure.tools.analyzer.passes.cleanup
clojure.tools.analyzer.passes.constant-lifter
clojure.tools.analyzer.passes.elide-meta
clojure.tools.analyzer.passes.emit-form
clojure.tools.analyzer.passes.jvm.analyze-host-expr
clojure.tools.analyzer.passes.jvm.annotate-host-info
clojure.tools.analyzer.passes.jvm.annotate-loops
clojure.tools.analyzer.passes.jvm.annotate-tag
clojure.tools.analyzer.passes.jvm.box
clojure.tools.analyzer.passes.jvm.classify-invoke
clojure.tools.analyzer.passes.jvm.constant-lifter
clojure.tools.analyzer.passes.jvm.emit-form
clojure.tools.analyzer.passes.jvm.fix-case-test
clojure.tools.analyzer.passes.jvm.infer-tag
clojure.tools.analyzer.passes.jvm.validate
clojure.tools.analyzer.passes.jvm.validate-loop-locals
clojure.tools.analyzer.passes.jvm.validate-recur
clojure.tools.analyzer.passes.jvm.warn-on-reflection
clojure.tools.analyzer.passes.source-info
clojure.tools.analyzer.passes.trim
clojure.tools.analyzer.passes.uniquify
clojure.tools.analyzer.passes.warn-earmuff
clojure.tools.analyzer.utils
clojure.tools.cli
clojure.tools.namespace.dependency
clojure.tools.namespace.file
clojure.tools.namespace.find
clojure.tools.namespace.parse
clojure.tools.namespace.track
clojure.tools.reader
clojure.tools.reader.default-data-readers
clojure.tools.reader.impl.commons
clojure.tools.reader.impl.errors
clojure.tools.reader.impl.inspect
clojure.tools.reader.impl.utils
clojure.tools.reader.reader-types
clojure.walk
CLJS
clojure.walk
dynadoc.aliases
dynadoc.common
dynadoc.core
CLJS
dynadoc.core
dynadoc.example
CLJS
dynadoc.state
dynadoc.static
dynadoc.utils
dynadoc.watch
eval-soup.clojail
eval-soup.core
CLJS
eval-soup.core
CLJS
figwheel.client
CLJS
figwheel.client.file-reloading
CLJS
figwheel.client.heads-up
CLJS
figwheel.client.socket
CLJS
figwheel.client.utils
hawk.core
hawk.watcher
html-soup.core
ns-tracker.core
ns-tracker.dependency
ns-tracker.nsdeps
ns-tracker.parse
CLJS
oakcljs.tools.reader
CLJS
oakcljs.tools.reader.impl.commons
CLJS
oakcljs.tools.reader.impl.errors
CLJS
oakcljs.tools.reader.impl.inspect
CLJS
oakcljs.tools.reader.impl.utils
CLJS
oakcljs.tools.reader.reader-types
oakclojure.tools.reader
oakclojure.tools.reader.default-data-readers
oakclojure.tools.reader.impl.commons
oakclojure.tools.reader.impl.errors
oakclojure.tools.reader.impl.inspect
oakclojure.tools.reader.impl.utils
oakclojure.tools.reader.reader-types
org.httpkit.server
CLJS
paren-soup.console
CLJS
paren-soup.core
CLJS
paren-soup.dom
CLJS
paren-soup.instarepl
CLJS
reagent.core
CLJS
reagent.debug
CLJS
reagent.dom
CLJS
reagent.impl.batching
CLJS
reagent.impl.component
CLJS
reagent.impl.template
CLJS
reagent.impl.util
CLJS
reagent.ratom
ring.middleware.content-type
ring.middleware.file
ring.middleware.head
ring.middleware.keyword-params
ring.middleware.params
ring.middleware.reload
ring.middleware.resource
ring.util.codec
ring.util.io
ring.util.mime-type
ring.util.parsing
ring.util.request
ring.util.response
ring.util.time
rum.core
CLJS
rum.core
rum.cursor
rum.derived-atom
rum.server-render
rum.util
sablono.compiler
CLJS
sablono.core
sablono.normalize
sablono.util
tag-soup.core

(parse-ns src)

(parse-ns src opts)

(parse-ns src dest opts)

Helper for parsing only the essential namespace information from a ClojureScript source file and returning a cljs.closure/IJavaScript compatible map _not_ a namespace AST node. By default does not load macros or perform any analysis of dependencies. If opts parameter provided :analyze-deps and :load-macros keys their values will be used for *analyze-deps* and *load-macros* bindings respectively. This function does _not_ side-effect the ambient compilation environment unless requested via opts where :restore is false.

Source

(defn parse-ns "Helper for parsing only the essential namespace information from a ClojureScript source file and returning a cljs.closure/IJavaScript compatible map _not_ a namespace AST node. By default does not load macros or perform any analysis of dependencies. If opts parameter provided :analyze-deps and :load-macros keys their values will be used for *analyze-deps* and *load-macros* bindings respectively. This function does _not_ side-effect the ambient compilation environment unless requested via opts where :restore is false." ([src] (parse-ns src nil (when env/*compiler* (:options @env/*compiler*)))) ([src opts] (parse-ns src nil opts)) ([src dest opts] (ensure (let [src (if (symbol? src) (util/ns->source src) src) ijs (binding [env/*compiler* (if (false? (:restore opts)) env/*compiler* (atom @env/*compiler*)) *cljs-ns* 'cljs.user *cljs-file* src *macro-infer* (or (when (contains? opts :macro-infer) (:macro-infer opts)) false) *analyze-deps* (or (when (contains? opts :analyze-deps) (:analyze-deps opts)) false) *load-macros* (or (when (contains? opts :load-macros) (:load-macros opts)) false)] (let [rdr (when-not (sequential? src) (io/reader src))] (try (loop [forms (if rdr (forms-seq* rdr (source-path src)) src) ret (merge {:file dest :source-file (when rdr src) :source-forms (when-not rdr src) :macros-ns (:macros-ns opts) :requires (cond-> #{'cljs.core} (get-in @env/*compiler* [:options :emit-constants]) (conj constants-ns-sym))} (when (and dest (.exists ^File dest)) {:lines (with-open [reader (io/reader dest)] (-> reader line-seq count))}))] (if (seq forms) (let [env (empty-env) ast (no-warn (analyze env (first forms) nil opts))] (cond (= :ns (:op ast)) (let [ns-name (:name ast) ns-name (if (and (= 'cljs.core ns-name) (= "cljc" (util/ext src))) 'cljs.core$macros ns-name) deps (merge (:uses ast) (:requires ast))] (merge {:ns (or ns-name 'cljs.user) :provides [ns-name] :requires (if (= 'cljs.core ns-name) (set (vals deps)) (cond-> (conj (set (vals deps)) 'cljs.core) (get-in @env/*compiler* [:options :emit-constants]) (conj constants-ns-sym))) :file dest :source-file (when rdr src) :source-forms (when-not rdr src) :ast ast :macros-ns (or (:macros-ns opts) (= 'cljs.core$macros ns-name))} (when (and dest (.exists ^File dest)) {:lines (with-open [reader (io/reader dest)] (-> reader line-seq count))}))) (= :ns* (:op ast)) (let [deps (merge (:uses ast) (:requires ast))] (recur (rest forms) (cond-> (update-in ret [:requires] into (set (vals deps))) ;; we need to defer generating the user namespace ;; until we actually need or it will break when ;; `src` is a sequence of forms - António Monteiro (not (:ns ret)) (assoc :ns (gen-user-ns src) :provides [(gen-user-ns src)])))) :else ret)) ret)) (finally (when rdr (.close ^Reader rdr))))))] ijs))))