Skip to content

Commit a1c6c2e

Browse files
committed
add c.m-g/module-for
1 parent ea92371 commit a1c6c2e

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/main/clojure/cljs/module_graph.cljc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,3 +333,15 @@
333333
(fn [ret module-name {:keys [depends-on] :or {depends-on []} :as module}]
334334
(assoc ret module-name depends-on))
335335
{} modules)))
336+
337+
(defn module-for
338+
"Given an entry find the module it belongs to."
339+
[entry modules]
340+
(let [modules' (normalize modules)
341+
entry' (str (munge entry))]
342+
(->> modules'
343+
(some
344+
(fn [[module-name {:keys [entries]} :as me]]
345+
(when (some #{entry'} entries)
346+
me)))
347+
first)))

src/test/clojure/cljs/module_graph_tests.clj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
;; You must not remove this notice, or any other, from this software.
88

99
(ns cljs.module-graph-tests
10-
(:require [clojure.test :refer [deftest is testing]]
10+
(:require [clojure.test :as test :refer [deftest is testing]]
1111
[cljs.closure :as closure]
1212
[cljs.util :as util]
1313
[cljs.module-graph :as module-graph]))
@@ -145,4 +145,8 @@
145145
{:cljs-base ["/asset/js/cljs_base.js"]
146146
:shared ["/asset/js/shared.js"]
147147
:page1 ["/asset/js/page1.js"]
148-
:page2 ["/asset/js/page2.js"]})))
148+
:page2 ["/asset/js/page2.js"]})))
149+
150+
(deftest test-module-for
151+
(is (= :page1 (module-graph/module-for 'page1.a (modules opts))))
152+
(is (= :page1 (module-graph/module-for "page1.a" (modules opts)))))

0 commit comments

Comments
 (0)