Skip to content

Commit a4f3ee6

Browse files
committed
add data oriented helper for getting parameter information
1 parent aec61c1 commit a4f3ee6

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/main/clojure/cljs/externs.clj

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
[clojure.string :as string])
1414
(:import [com.google.javascript.jscomp
1515
CompilerOptions CompilerOptions$Environment SourceFile CompilerInput CommandLineRunner]
16-
[com.google.javascript.jscomp.parsing Config$JsDocParsing]
16+
[com.google.javascript.jscomp.parsing Config$JsDocParsing JsDocInfoParser$ExtendedTypeInfo]
1717
[com.google.javascript.rhino
18-
Node Token JSTypeExpression JSDocInfo$Visibility]
18+
Node Token JSTypeExpression JSDocInfo JSDocInfo$Visibility]
1919
[java.util.logging Level]
2020
[java.net URL]))
2121

@@ -108,6 +108,18 @@
108108
(= t 'Array) 'array
109109
:else t)))
110110

111+
(defn get-params
112+
"Return param information in JSDoc appearance order. GCL is relatively
113+
civilized, so this isn't really a problem."
114+
[^JSDocInfo info]
115+
(map
116+
(fn [n]
117+
(let [t (.getParameterType info n)]
118+
{:name (symbol n)
119+
:optional? (.isOptionalArg t)
120+
:var-args? (.isVarArgs t)}))
121+
(.getParameterNames info)))
122+
111123
(defn get-var-info [^Node node]
112124
(when node
113125
(let [info (.getJSDocInfo node)]

0 commit comments

Comments
 (0)