File tree Expand file tree Collapse file tree 2 files changed +24
-6
lines changed
src/clojure/tools/namespace
test/clojure/tools/namespace Expand file tree Collapse file tree 2 files changed +24
-6
lines changed Original file line number Diff line number Diff line change 83
83
[namespace :refer (x y)] or just [namespace]"
84
84
[form]
85
85
(and (sequential? form) ; should be a vector, but often is not
86
- (symbol? (first form))
86
+ (or (symbol? (first form))
87
+ (string? (first form)))
87
88
(or (keyword? (second form)) ; vector like [foo :as f]
88
89
(= 1 (count form))))) ; bare vector like [foo]
89
90
100
101
(list (symbol (str (when prefix (str prefix " ." )) form)))
101
102
(keyword? form) ; Some people write (:require ... :reload-all)
102
103
nil
103
- :else
104
+ (string? form) ; NPM dep, ignore
105
+ nil
106
+ :else
104
107
(throw (ex-info " Unparsable namespace form"
105
108
{:reason ::unparsable-ns-form
106
109
:form form}))))
Original file line number Diff line number Diff line change 171
171
(:require #?(:cljr clojure.string ;;; :clj
172
172
:cljs goog.string)))" )
173
173
174
+ (defn str->ns-decl [^String s]
175
+ (-> s
176
+ System.IO.StringReader. ; ;; java.io.StringReader.
177
+ clojure.lang.PushbackTextReader. ; ;; java.io.PushbackReader.
178
+ read-ns-decl))
179
+
174
180
(deftest t-reader-conditionals
175
181
(when (resolve 'clojure.core/reader-conditional?)
176
182
(let [actual (-> reader-conditionals-string
177
- System.IO.StringReader. ; ;; java.io.StringReader.
178
- clojure.lang.PushbackTextReader. ; ;; java.io.PushbackReader.
179
- read-ns-decl
183
+ str->ns-decl
180
184
deps-from-ns-decl)]
181
- (is (= #{'clojure.string} actual)))))
185
+ (is (= #{'clojure.string} actual)))))
186
+
187
+
188
+ (def ns-with-npm-dependency
189
+ " (ns com.examples.one
190
+ (:require [\" foobar\" ] [baz]))" )
191
+
192
+ (deftest cljs-string-dependency
193
+ (let [actual (-> ns-with-npm-dependency
194
+ str->ns-decl
195
+ deps-from-ns-decl)]
196
+ (is (= #{'baz} actual))))
You can’t perform that action at this time.
0 commit comments