Moved safe-fns to their own file for later extending
This commit is contained in:
48
iac/src/main/utils/safe_fns.cljs
Normal file
48
iac/src/main/utils/safe_fns.cljs
Normal file
@@ -0,0 +1,48 @@
|
||||
(ns utils.safe-fns)
|
||||
|
||||
(defn make-paths [& path-groups]
|
||||
(mapcat (fn [{:keys [paths backend]}]
|
||||
(mapv (fn [p]
|
||||
{:path p
|
||||
:pathType "Prefix"
|
||||
:backend {:service backend}})
|
||||
paths))
|
||||
path-groups))
|
||||
|
||||
|
||||
(defn make-listeners [domains-or-json]
|
||||
(let [domains (if (string? domains-or-json)
|
||||
(js->clj (js/JSON.parse domains-or-json))
|
||||
domains-or-json)]
|
||||
(vec
|
||||
(mapcat
|
||||
(fn [domain]
|
||||
(let [clean-name (clojure.string/replace domain #"\." "-")
|
||||
secret-name (str clean-name "-tls")]
|
||||
|
||||
[{:name (str "https-root-" clean-name)
|
||||
:port 8443
|
||||
:protocol "HTTPS"
|
||||
:hostname domain
|
||||
:tls {:mode "Terminate"
|
||||
:certificateRefs [{:name secret-name}]}
|
||||
:allowedRoutes {:namespaces {:from "All"}}
|
||||
}
|
||||
|
||||
{:name (str "https-wild-" clean-name)
|
||||
:port 8443
|
||||
:protocol "HTTPS"
|
||||
:hostname (str "*." domain)
|
||||
:tls {:mode "Terminate"
|
||||
:certificateRefs [{:name secret-name}]}
|
||||
:allowedRoutes {:namespaces {:from "All"}}
|
||||
}]))
|
||||
domains))))
|
||||
|
||||
(def ^:public safe-fns
|
||||
{'str str
|
||||
'b64e (fn [s] (-> (.from js/Buffer s) (.toString "base64")))
|
||||
'println #(js/console.log %)
|
||||
'make-paths make-paths
|
||||
'make-listeners make-listeners
|
||||
'parse #(js->clj (js/JSON.parse %))})
|
||||
Reference in New Issue
Block a user