(defn externs-map
([]
(externs-map (CommandLineRunner/getDefaultExterns)))
([sources]
(externs-map sources
'{eval {}
global {}
goog {nodeGlobalRequire {}}
COMPILED {}
TypeError {}
Error {prototype {number {} columnNumber {}}}
ReferenceError {}}))
([sources defaults]
(let [sources (if-not (empty? sources)
sources
(CommandLineRunner/getDefaultExterns))]
(reduce
(fn [externs externs-file]
(util/map-merge
externs (index-externs (parse-externs externs-file))))
defaults sources))))