It’s not so easy to get *ns*
string in ClojureScript as you might expect but here is a tip.
It is impossible to get *ns*
string at run-time in ClojureScript (except in self-hosted ClojureScript) but it can be accessed at compile-time only. So you have to use a macro to get it as the following example.
I came up with this idea in the course of implementing set-ns-blacklist!
and set-ns-whitelist!
(https://github.com/philoskim/debux#debux-config) in my debux library.
example/macro.clj
(ns example.macro)
(defmacro current-ns []
(str *ns*))
example/lab.cljs
(ns example.lab
(:require-macros [example.macro :refer [current-ns]]))
(current-ns)
; => "example.lab"
@Menthalion
The followings have the same result.
Both
(.getName *ns*)
and(ns-name *ns*)
return theclojure.lang.Symbol
type.Do you have any opinion or reason about which one is better?
See here (http://cljs.github.io/api/cljs.core/STARnsSTAR) for one example.
Anyway thanks for suggestion!