Commit graph

57 commits

Author SHA1 Message Date
Tommi Reiman
35ff62a1da Fix expand, fixes #201 2019-01-14 10:07:16 +02:00
Tommi Reiman
48961c9ed4 quarantine-router 2018-12-22 10:37:18 +02:00
Tommi Reiman
260b167853 Decode path-params on match-by-name, fixes #192 2018-12-21 20:17:46 +02:00
Tommi Reiman
492d5e2f2b Segment-router doesn't allow empty path-parameters 2018-12-10 20:30:58 +02:00
Matthew Davidson
ec051a0c9d Decode %-encoded URL path params
Also adds utility fn map-kv which is convenient for en/decoding
both maps (like path-params) and vectors (like path parts)

Converts path-params fn to use map-kv
2018-08-07 21:13:40 -04:00
Matthew Davidson
c81dad4f94 Merge master into url-decode-path-params 2018-08-05 16:36:23 -04:00
Tommi Reiman
bf3007bfe1 Support for sequential child routes 2018-07-26 10:07:49 +03:00
Matthew Davidson
f6054a7c40 Add URL-decoding support
Enables matching URLs with %-encoded chars, and decodes path params.
Currently Reitit cannot handle %-encoded paths, even though they can be
quite common (like `/search/my random search string`)

E.g.:
Successfully match `/space in path` to `/space%20in%20path`
Match `/path/:param1` to `/path/foo%20bar` and see
`:param1` => `"foo bar"` in path params

Does not apply %-decoding to routes, only URLs
Does not guarantee decoding '+' into a space. (Java's URLDecoder
supports it, but it shouldn't for URL path part.)
2018-07-23 00:53:53 -04:00
Tommi Reiman
16856749b1 handle name conflicts in router 2018-07-21 09:48:07 +03:00
Tommi Reiman
d6d2ee478c r/routes & r/compiled-routes 2018-07-18 12:17:16 +03:00
Tommi Reiman
1923f2d08e handle query-parameters in reverse routing 2018-06-14 17:57:36 +03:00
Tommi Reiman
0cafb9639d . 2018-06-06 10:34:23 +03:00
Tommi Reiman
7a544cd52d Better handling of nil in routing 2018-06-06 10:34:23 +03:00
Tommi Reiman
d48515e084 Strip nil routes from all positions 2018-06-06 10:34:23 +03:00
Tommi Reiman
5ef30443ef Initial take on IntoString 2018-03-20 16:30:53 +02:00
Tommi Reiman
54b24be28e :params => :path-params 2018-02-01 16:23:44 +02:00
Tommi Reiman
07bcd2ea59 Cleanup 2017-12-31 11:34:13 +02:00
Tommi Reiman
293274fb68 implement catch-all params for segment-router 2017-11-24 18:58:48 +02:00
Tommi Reiman
e0786b73f0 Remove prefix-tree router as it's broken 2017-11-24 09:45:52 +02:00
Tommi Reiman
4490fc1685 Test the segment-router. prefix-tree fails on complex tests... 2017-11-24 09:42:53 +02:00
Tommi Reiman
5d7670de60 Welcome segment-router! 2017-11-24 09:01:05 +02:00
Tommi Reiman
2dd91d91d6 BREAKING: route :meta => :data 2017-11-18 12:47:16 +02:00
Tommi Reiman
8bde6aefa2 Test that different routers work correctly 2017-11-11 16:46:43 +02:00
Tommi Reiman
5d7786936c prefix-tree-router! 2017-11-10 18:12:00 +00:00
Tommi Reiman
8afbbee813 fast-router -> single-static-path-router 2017-10-02 17:54:37 +03:00
Tommi Reiman
e9c0639914 Fast-router if only 1 static path.
* 200x faster on basic benchmark than the slowest one
2017-10-02 17:54:37 +03:00
Tommi Reiman
dc5768d3cd Fix tests 2017-10-02 08:25:10 +03:00
Tommi Reiman
a2b04f0677 Cleanup 2017-10-02 08:05:42 +03:00
Tommi Reiman
8e2e0c07f6 Polish errors 2017-09-18 08:29:52 +03:00
Tommi Reiman
881fb240bc IntoMiddleware is now any? => Middleware
Also, reitit/routes returns compiled results ftw!
2017-09-08 08:27:20 +03:00
Tommi Reiman
249a54f9bc router-type => router-name 2017-09-08 08:17:45 +03:00
Tommi Reiman
4e22fd2f53 Allow middleware to be compiled (fixes #26)
Match :handler => :result
2017-08-30 08:14:06 +03:00
Tommi Reiman
dd6d0d5a1c use linearrouter if all routes are wild 2017-08-22 13:10:39 +03:00
Tommi Reiman
3dc1cdfbe2 Welcome :mixed-router (-20% on rest-test) & custom routers 2017-08-22 13:10:39 +03:00
Tommi Reiman
066f5752c2 Return all conflicts for IO 2017-08-22 13:10:39 +03:00
Tommi Reiman
9701a51c5a Routing -> Router, fix tests 2017-08-22 13:10:38 +03:00
Tommi Reiman
f5f1104826 Router option to handle conflicts 2017-08-22 13:10:38 +03:00
Tommi Reiman
851e35ef52 Validate routes for duplicates (fixes #23) 2017-08-22 13:10:38 +03:00
Tommi Reiman
853b7ac24b Cleanup 2017-08-20 21:04:35 +03:00
Tommi Reiman
3e3f728c4e reitit/options, reitit/router-type, reified protocols 2017-08-20 21:00:20 +03:00
Tommi Reiman
1ea6b55849 Testing LookupRouter perf, +20% with fast-assoc 2017-08-20 19:14:49 +03:00
Tommi Reiman
bc2706147c PartialMatch & route-names 2017-08-19 16:04:13 +03:00
Tommi Reiman
038dfd11ae Update README, fix NPE with match-by-name 2017-08-17 08:54:54 +03:00
Tommi Reiman
fe19b57b01 Ring simple-router & method-router 2017-08-14 09:42:12 +03:00
Tommi Reiman
93447fdc71 coerce & compile take opts, resolved in router 2017-08-14 09:42:12 +03:00
Tommi Reiman
a208f7df6c Remove println 2017-08-14 09:42:12 +03:00
Tommi Reiman
0a58510dc2 Default compile get the :handler from meta 2017-08-13 14:40:46 +03:00
Tommi Reiman
5f1d6a61a6 Cleanup & fix perf test 2017-08-12 17:55:58 +03:00
Tommi Reiman
1835ffc681 Support route compilation (fixes #14)
* also, so docs
2017-08-12 17:50:21 +03:00
Tommi Reiman
08edbb9419 Route coercion, fixes #4 2017-08-11 16:02:08 +03:00