mirror of
https://github.com/metosin/reitit.git
synced 2025-12-23 10:41:10 +00:00
Fast path matching with .equals
This commit is contained in:
parent
40c35a0dfd
commit
da9c94e520
1 changed files with 18 additions and 16 deletions
|
|
@ -104,22 +104,24 @@
|
|||
(defrecord Route [path matcher parts params meta result])
|
||||
|
||||
(defn create [[path meta result]]
|
||||
(if (contains-wilds? path)
|
||||
(as-> (parse-path path) $
|
||||
(assoc $ :path-re (path-regex $))
|
||||
(merge $ {:path path
|
||||
:matcher (path-matcher $)
|
||||
:result result
|
||||
:meta meta})
|
||||
(dissoc $ :path-re :path-constraints)
|
||||
(update $ :path-params set)
|
||||
(set/rename-keys $ {:path-parts :parts
|
||||
:path-params :params})
|
||||
(map->Route $))
|
||||
(map->Route {:path path
|
||||
:meta meta
|
||||
:matcher #(if (= path %) {})
|
||||
:result result})))
|
||||
(let [path #?(:clj (.intern ^String path) :cljs path)]
|
||||
(if (contains-wilds? path)
|
||||
(as-> (parse-path path) $
|
||||
(assoc $ :path-re (path-regex $))
|
||||
(merge $ {:path path
|
||||
:matcher (path-matcher $)
|
||||
:result result
|
||||
:meta meta})
|
||||
(dissoc $ :path-re :path-constraints)
|
||||
(update $ :path-params set)
|
||||
(set/rename-keys $ {:path-parts :parts
|
||||
:path-params :params})
|
||||
(map->Route $))
|
||||
(map->Route {:path path
|
||||
:meta meta
|
||||
:matcher #?(:clj #(if (.equals path %) {})
|
||||
:cljs #(if (= path %)))
|
||||
:result result}))))
|
||||
|
||||
(defn segments [path]
|
||||
(let [ss (-> (str/split path #"/") rest vec)]
|
||||
|
|
|
|||
Loading…
Reference in a new issue