Commit graph

252 commits

Author SHA1 Message Date
Vincent Cantin
b77115850f Rewrote reitit.core/path-conflicting-routes using transducers. 2019-01-21 23:28:14 +08:00
Tommi Reiman
7ec5c79cad Release 0.2.12 2019-01-18 08:56:23 +02:00
Tommi Reiman
1e7b118ce4 Fix reflection & boxed-math warning, fixes #207 2019-01-18 08:51:43 +02:00
Tommi Reiman
d203832667 0.2.11 2019-01-17 19:43:45 +02:00
Tommi Reiman
ff20260f5f Fix scanner for cljs 2019-01-17 08:18:35 +02:00
Tommi Reiman
95ebdfa6a4 linear-router is backed by a segment-router 2019-01-17 08:13:25 +02:00
Tommi Reiman
b8d8286265 Fixes for the SegmentTrie 2019-01-15 22:13:12 +02:00
Tommi Reiman
5bd933a10c docs 2019-01-15 22:04:50 +02:00
Tommi Reiman
393049a772 Oh My Java: safe guard against index overflows. 2019-01-14 21:08:20 +02:00
Tommi Reiman
ffc6ba8053 Simplied Java, based on review 2019-01-14 16:39:00 +02:00
Tommi Reiman
75065b56e3 Public docs for reitit.segment 2019-01-14 16:38:45 +02:00
Tommi Reiman
406386e0f6 encode -> decode 2019-01-14 10:45:27 +02:00
Tommi Reiman
36f1df3867 Dead code 2019-01-14 10:45:27 +02:00
Tommi Reiman
3168747540 Fix cljs 2019-01-14 10:45:27 +02:00
Tommi Reiman
16499cceb1 Single wild optimization 2019-01-14 10:45:27 +02:00
Tommi Reiman
5079daa8f3 WIP 2019-01-14 10:45:27 +02:00
Tommi Reiman
93bcc5dad8 Trie -> SegmentTrie 2019-01-14 10:45:27 +02:00
Tommi Reiman
54aded4442 Dead code 2019-01-14 10:45:27 +02:00
Tommi Reiman
80dea6cfef Snappier Trie 2019-01-14 10:45:27 +02:00
Tommi Reiman
3f86e24b89 faster split 2019-01-14 10:45:27 +02:00
Tommi Reiman
e1925c8462 . 2019-01-14 10:45:27 +02:00
Tommi Reiman
ae2337621f calf 2019-01-14 10:45:27 +02:00
Tommi Reiman
2a1fea2ccb Initial Java Trie 2019-01-14 10:45:27 +02:00
Tommi Reiman
35ff62a1da Fix expand, fixes #201 2019-01-14 10:07:16 +02:00
Tommi Reiman
408b30eaba Release 0.2.10 2018-12-30 17:48:27 +02:00
Tommi Reiman
2ec29b8f9d Polish docs 2018-12-30 16:53:15 +02:00
Tommi Reiman
7f4aa1bdcc Dev-middleware works with async + polished code 2018-12-22 13:48:47 +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
Tommi Reiman
0e73b883ed 0.2.9 2018-11-21 16:03:09 +02:00
Tommi Reiman
883a65acca Document the router options 2018-11-19 21:04:38 +02:00
Tommi Reiman
dd6b07aa0f Release 0.2.8 2018-11-18 22:31:13 +02:00
Tommi Reiman
ffc36fce36 Support composable transformations of mw/interceptor chain
* fixes #167
2018-11-18 22:19:30 +02:00
Tommi Reiman
a205d14afc Update to 0.2.7 with new spec-tools 2018-11-11 22:03:16 +02:00
Tommi Reiman
69592c0f68 Bump up top 0.2.6 2018-11-09 15:41:13 +02:00
Miikka Koskinen
65886c190f Do not use cljs.string/replace-all, it's private
The 1.10.439 release of compiler complains about it. Fixes #169.
2018-11-08 10:00:23 +02:00
Tommi Reiman
1623d001d1 Link to original source files 2018-11-04 20:55:27 +02:00
Tommi Reiman
48318b8793 Fix to if-some as the docs say 2018-11-04 20:54:52 +02:00
Tommi Reiman
9ce898a0b4 3x faster default path-parameter decoding 2018-11-04 09:57:32 +02:00
Tommi Reiman
fdbab455bd 0.2.5 2018-10-30 20:25:14 +02:00
Tommi Reiman
69aeb9adcc Release 0.2.4 2018-10-21 20:37:35 +03:00
Tommi Reiman
5046aebec8 Allow any kind of model 2018-10-16 20:25:43 +03:00
Tommi Reiman
52eeea3c99 Allow any keys in paramters, related to #145 2018-09-26 16:28:26 +03:00
Tommi Reiman
f5ee149929 Release 0.2.3 2018-09-24 20:51:43 +03:00
Tommi Reiman
d81f20ae79 0.2.2 2018-09-09 22:29:00 +03:00
Tommi Reiman
7ecc2178c5 remove :compile key from compiled interceptors 2018-09-07 23:08:22 +03:00
Juho Teperi
98707902ea Add :scm tags for clojars commit link 2018-09-04 19:21:07 +03:00
Tommi Reiman
fa90d12eb8 0.2.1 with updated deps 2018-09-04 18:15:23 +03:00
Tommi Reiman
ac86d550b5 0.2.0 2018-09-03 19:44:59 +03:00
Tommi Reiman
2c51f051de 0.2.0-alpha1 2018-09-02 17:52:19 +03:00
Tommi Reiman
08b2fc7bfd fix docs for coerce! fixes #131 2018-08-31 15:26:17 +03:00
Tommi Reiman
07acbb275f Pedestal-sample 2018-08-31 10:50:00 +03:00
Tommi Reiman
9fc8710cad inline lookup-structs 2018-08-31 10:49:48 +03:00
Tommi Reiman
fd8985fd75 pass-through function interceptors 2018-08-25 13:30:54 +03:00
Tommi Reiman
c1a747857f reitit-sieppari & small fixes 2018-08-25 13:30:54 +03:00
Tommi Reiman
044c0d6163 http-router 2018-08-25 13:28:44 +03:00
Tommi Reiman
5e7be28eb7 fn -> handler in interceptors 2018-08-25 13:28:44 +03:00
Tommi Reiman
59cbb25688 initial http-handler 2018-08-25 13:28:44 +03: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
35656c3da6 Extract lookup struct-generating code 2018-08-07 21:10:33 -04:00
Matthew Davidson
c81dad4f94 Merge master into url-decode-path-params 2018-08-05 16:36:23 -04:00
Tommi Reiman
282fa7f012 Read :headers from request :headers. not :header-params 2018-08-05 23:00:59 +03:00
Tommi Reiman
af2d792290 Allows raw specs as parameters 2018-08-05 22:53:43 +03:00
Tommi Reiman
4ea025dc83 more robust apidocs 2018-08-02 16:12:32 +03:00
Tommi Reiman
230717ba65 double fast byte formatting 2018-08-02 16:06:34 +03:00
Tommi Reiman
7389838b59 mention sources 2018-08-01 19:51:54 +03:00
Tommi Reiman
bf3fb64088 query is a form-param 2018-08-01 19:43:58 +03:00
Tommi Reiman
682dd05568 tune perf 2018-08-01 19:28:52 +03:00
Tommi Reiman
6c23a5562a form-encode & form-decode 2018-08-01 18:57:17 +03:00
Tommi Reiman
303b124973 format 2018-08-01 18:56:58 +03:00
Tommi Reiman
0b4d1d2ee1 url-encode & url-decode 2018-08-01 18:08:03 +03:00
Tommi Reiman
bb4f861f00 0.2.0-SNAPSHOT 2018-07-28 12:07:16 +03:00
Tommi Reiman
604291f98e Better interceptor error messages 2018-07-28 12:05:12 +03:00
Tommi Reiman
8321589f04 Polish docs 2018-07-28 12:01:12 +03:00
Tommi Reiman
6c47b5fa94 Welcome Interceptor registry! 2018-07-27 15:14:10 +03:00
Tommi Reiman
94431352b8 Welcome Middleware registry! 2018-07-27 15:14:00 +03: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
7514d1b263 rename extract-request-format 2018-07-16 16:01:34 +03:00
Juho Teperi
6b8ebdebe6 Fix creating urls with query string when not using fragment 2018-07-12 22:52:41 +03:00
Juho Teperi
264981fd3d Start version 0.1.4 2018-07-12 12:49:14 +03:00
Juho Teperi
434bc25cd6 Format code 2018-07-12 12:49:14 +03:00
Tommi Reiman
79d8e1bb91 0.1.3 2018-06-25 17:50:36 +03:00
Tommi Reiman
18bd2e684f bump up version (all but docs) 2018-06-24 22:32:23 +03:00
Tommi Reiman
f6c460d05c If response body is not defined, response is passed as-is 2018-06-24 18:36:55 +03:00
Tommi Reiman
1923f2d08e handle query-parameters in reverse routing 2018-06-14 17:57:36 +03:00
Tommi Reiman
26be209d3a handle nil with IntoString 2018-06-14 17:50:24 +03:00
Tommi Reiman
771128c281 Support all parameter types 2018-06-14 13:40:32 +03:00
Tommi Reiman
bcc2564498 default coercion format reads from Muuntaja keys 2018-06-11 08:52:53 +03:00
Tommi Reiman
73a5bd2d3d remove dead code 2018-06-11 08:52:03 +03:00
Tommi Reiman
6b95fab88c 0.1.2 2018-06-06 10:43:59 +03:00
Tommi Reiman
f2d3d0a125 if -> when 2018-06-06 10:34:23 +03:00
Tommi Reiman
21de7a038a 0.1.2-SNAPSHOT 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
fc71947bbb 0.1.1 2018-05-20 21:55:46 +03:00
Tommi Reiman
e137b8baec linear-router serves unnamed catch-all paths 2018-05-14 08:21:03 +03:00
Tommi Reiman
586b02f67d Fix based on Miikka’s comments 2018-03-22 18:57:53 +02:00
Tommi Reiman
b4835a7860 Polish code 2018-03-21 08:15:28 +02:00
Tommi Reiman
f547576a44 Support also booleans, more tests 2018-03-21 07:48:56 +02:00
Tommi Reiman
5ef30443ef Initial take on IntoString 2018-03-20 16:30:53 +02:00
Tommi Reiman
3cc9fedcbf Fixed based on Miikka’s comments 2018-03-18 11:21:49 +02:00
Tommi Reiman
b57d900507 0.1.1-SNAPSHOT 2018-03-17 14:32:51 +02:00
Tommi Reiman
b43c8cfed9 Swagger WIP 2018-03-17 10:53:19 +02:00
Tommi Reiman
d4a4949ad0 0.1.0 2018-02-19 22:03:30 +02:00
Tommi Reiman
32fb3ca294 :responses have :body, not :schema 2018-02-11 21:38:15 +02:00
Tommi Reiman
20b9d3c6c8 :parts => :path-parts 2018-02-01 16:25:04 +02:00
Tommi Reiman
54b24be28e :params => :path-params 2018-02-01 16:23:44 +02:00
Tommi Reiman
fb99b4f9fd Parameter & Response Coercion with specs 2017-12-31 11:34:37 +02:00
Tommi Reiman
07bcd2ea59 Cleanup 2017-12-31 11:34:13 +02:00
Tommi Reiman
9273f99806 Middleware can also contribute to router specs 2017-12-28 22:41:02 +02:00
Tommi Reiman
abb09e2736 Fix -exclude 2017-12-27 21:40:36 +02:00
Tommi Reiman
5c53b6e989 Fix path spec - doesn't have to start with "/" 2017-12-27 20:28:25 +02:00
Tommi Reiman
6321d1e8be Docs for route-data validation 2017-12-27 20:27:51 +02:00
Tommi Reiman
06cb1301cd Support route data validation in router 2017-12-26 22:40:34 +02:00
Tommi Reiman
ce15ae95ec Exclude -lookup (cljs) 2017-12-26 22:39:14 +02:00
Tommi Reiman
ee0c733726 Compile routes already in reitit.core/router 2017-12-26 17:56:46 +02:00
Tommi Reiman
1427f12c53 fix reflection warnings 2017-12-14 11:45:01 +02:00
Tommi Reiman
2dc3636064 Coercion is a reified Protocol, not a Record 2017-12-14 09:16:10 +02:00
Tommi Reiman
fd6a39aefc Implement Interceptors like Middlewar 2017-12-12 22:27:50 +02:00
Tommi Reiman
927d4d4389 Remove middleware/create & polish stuff 2017-12-12 22:27:36 +02:00
Tommi Reiman
2092682d6a interceptors, wip 2017-12-10 18:08:46 +02:00
Tommi Reiman
715968a5d2 Coercion docs 2017-12-10 16:57:09 +02:00
Tommi Reiman
7af3f470d6 Cleanup 2017-12-09 23:46:26 +02:00
Tommi Reiman
dbe40e0145 coerce! with tests 2017-12-09 23:07:33 +02:00
Tommi Reiman
b9f032a5ce Cleanup Coercion 2017-12-09 22:49:32 +02:00
Tommi Reiman
5fdaf609c2 Guard for infinite middleware compilation 2017-12-05 08:52:53 +02:00
Tommi Reiman
259c8e01bb Test for deeply compiled middleware 2017-12-05 08:40:21 +02:00
Tommi Reiman
22bbe38b8c reitit.ring.middleware => reitit.middleware 2017-12-04 23:58:05 +02:00
Tommi Reiman
164473cc75 :gel-wrap => :compile 2017-12-04 22:44: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
102fd35f04 Functional segemnt-router 2017-11-24 07:34:14 +02:00
Tommi Reiman
ec35c2ebbf Polish segment-router 2017-11-23 16:01:40 +02:00
Tommi Reiman
636c7ecd24 Clean up internals 2017-11-23 15:52:59 +02:00
Tommi Reiman
8019cebdc7 Segment-router to rule 'em all 2017-11-20 15:17:38 +02:00
Tommi Reiman
607e34c671 Add :type meta to Routers 2017-11-20 15:17:25 +02:00
Tommi Reiman
2dd91d91d6 BREAKING: route :meta => :data 2017-11-18 12:47:16 +02:00
Tommi Reiman
1f27021c29 Tries have a human-readable representation 2017-11-11 16:39:11 +02:00
Tommi Reiman
2f6bfb33f8 Use linear-router always if there are conflicting routes 2017-11-11 16:38:16 +02:00
Tommi Reiman
de993abf62 Move tests 2017-11-10 18:12:00 +00:00
Tommi Reiman
5d7786936c prefix-tree-router! 2017-11-10 18:12:00 +00:00
Tommi Reiman
39bc633576 j.u.HashMap fails with nil 2017-11-10 18:12:00 +00:00
Tommi Reiman
2ae8fd27a8 Replace the version in place 2017-10-30 21:39:35 +02:00
Tommi Reiman
a3ebb04038 Manage dependencies via lein-parent 2017-10-29 09:31:28 +02:00