Commit graph

505 commits

Author SHA1 Message Date
Tommi Reiman
ae1a8f7919 Fail fast with multiple terminators. 2019-02-28 12:11:05 +02:00
Tommi Reiman
df38a0de05 Test bracket syntax + fix trie conflicting rules 2019-02-28 12:11:05 +02:00
Tommi Reiman
659aac7fd0 Much faster without transients 2019-02-28 12:11:05 +02:00
Tommi Reiman
81b9bdceef Small improvement
* Sort linear routes secondary with static path length
* Unwrap data-matchers from linear-router
* Simplify StaticMatcher impl
2019-02-28 12:11:05 +02:00
Tommi Reiman
c302f795ab Remove dead code 2019-02-28 12:11:05 +02:00
Tommi Reiman
54d5550fae cljs trie 2019-02-28 12:11:05 +02:00
Tommi Reiman
5b9f90d283 ifs -> switch. maybe faster? 2019-02-28 12:11:05 +02:00
Tommi Reiman
2eb4513447 Initial pure-clojure impl 2019-02-28 12:11:05 +02:00
Tommi Reiman
cecd6cf526 Start working on cljs trie 2019-02-28 12:11:05 +02:00
Tommi Reiman
c87bc099b0 char-array is faster, re-run tests 2019-02-28 12:10:01 +02:00
Tommi Reiman
34d8cb0f57 Test with String path 2019-02-28 12:10:01 +02:00
Tommi Reiman
6f902d118a Free from the regex! 2019-02-28 12:10:01 +02:00
Tommi Reiman
8755e19f78 Cleanup 2019-02-28 12:10:01 +02:00
Tommi Reiman
42d6d0c78d Priorize trie based on depth 2019-02-28 12:10:01 +02:00
Tommi Reiman
4c0d2fb285 mega-insert for trie! 2019-02-28 12:10:01 +02:00
Tommi Reiman
8628f0cec6 Remove segment-rouiter code 2019-02-28 12:10:01 +02:00
Tommi Reiman
ce80f83319 :segment-router -> :trie-router 2019-02-28 12:10:01 +02:00
Tommi Reiman
08edbe5b01 . 2019-02-28 12:10:01 +02:00
Tommi Reiman
eaee4ca38d Implement catch-all from trie 2019-02-28 12:10:01 +02:00
Tommi Reiman
fe0ea19e31 Better perf with transient parameters 2019-02-28 12:10:01 +02:00
Tommi Reiman
f2d131a897 wip 2019-02-28 12:10:01 +02:00
Tommi Reiman
b1bef1c1cc Fix #216 2019-02-19 19:40:26 +02:00
Juho Teperi
1e5fe74c29 Fix indent 2019-02-08 14:47:05 +02:00
Juho Teperi
cbff7d10bf Fix HTML5 history in IE11 (and hopefully others)
closest method is not available in IE, but we only need to find ancestor
by tag name which is easy and relatively fast anyway.
2019-02-08 14:44:28 +02:00
Juho Teperi
6123230f98 Simplify contentEditable check for frontend routing 2019-02-08 13:57:03 +02:00
Juho Teperi
f5eb1d17f5
Merge pull request #212 from nextjournal/fix-html5-history-contenteditable
Fix handling links inside contenteditable
2019-02-08 13:49:55 +02:00
Philipp Markovics
88a13ba2f8 Don’t follow links when they are contenteditable 2019-02-08 12:39:07 +01:00
Juho Teperi
648c92bef8 Only display controller :params deprecating warning once 2019-02-08 10:39:40 +02:00
Juho Teperi
9e30836839 Update controller docs 2019-02-08 10:22:29 +02:00
Juho Teperi
36109f142c Replace controller :params with :identity and :parameters 2019-02-08 10:22:29 +02:00
Juho Teperi
c314707afb Add utils to create common controller :params functions 2019-02-08 10:21:19 +02:00
Juho Teperi
9d6b0071fc Call :stop for controllers in reverse order 2019-02-08 10:21:19 +02:00
Tommi Reiman
16b6b8ad9f
Merge pull request #210 from nilern/toposort
Middleware/interceptor dependency resolution algorithm
2019-02-03 15:05:44 +02:00
Tommi Reiman
62f908d988 Second fix to #209 2019-01-26 16:34:16 +02:00
Tommi Reiman
d2d5019d0f 0.2.13 2019-01-26 16:20:19 +02:00
Tommi Reiman
b2cd7f37e2 Fix #209 2019-01-26 16:17:13 +02:00
Pauli Jaakkola
b02ccdd53b #33 Add dependency reolution algorithm. 2019-01-25 16:45:46 +02:00
Vincent Cantin
fdf249a959 Apply a change suggested by Miikka Koskinen. 2019-01-22 08:25:58 +08:00
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
f1cbeaa7d2 Fix arity error on benchmarks 2019-01-18 08:52:03 +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
213f16defa FIx swagger uris 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
75c4f78f5d :inject-router? and :inject-match? for ring & http 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
8081fe1a49 0.2.10-alpha1 2018-12-27 16:45:33 +02:00
Tommi Reiman
998656a9ac Enchance docs 2018-12-27 16:01:31 +02:00
Tommi Reiman
f524459768
Merge pull request #197 from metosin/reitit-pedestal
Reitit pedestal
2018-12-26 15:48:43 +02:00
Tommi Reiman
8e0aaf7ae8 Reitit-pedestal 2018-12-26 15:43:26 +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
Heikki Hämäläinen
24c146a702 Add support for vector based specs in Swagger generation
This allows data specs to be in vectors as well as maps. Before the change data spec [{:foo string?}] would throw exception when generating Swagger.
2018-11-21 14:23:33 +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
37cb99a13e Expose spec problems to error handlers 2018-11-17 20:50:04 +02:00
Miloslav Nenadal
13141027ee Support swagger with async ring 2018-11-17 11:11:55 +01:00
Tommi Reiman
02308b582d Interceptors diff context, not request 2018-11-11 22:31:02 +02:00
Tommi Reiman
4bfafaffec Diff printing middleware & interceptors 2018-11-11 22:23:51 +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
1a13a24224 In ClojureScript, satisfies? is a macro
Thus `partial` can't be used with it.
2018-11-08 10:00:57 +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
Hannu Hartikainen
6a7fb095cb Support stripping multiple slashes
One inspiration for stripping/adding slashes automatically in reitit was
https://github.com/julienschmidt/httprouter which can handle any number
of slashes. Make the implementation a bit better by stripping as many
slashes as there are.

This still doesn't support redirecting from a multiple-slash URI to a
single-slash URI. That could be handled as a special case, but in the
end I think the correct solution would be to convert both the router and
request URIs to a canonical form before matching. Then the question of
slashes is just a question of formatting.
2018-10-31 09:48:13 +02:00
Tommi Reiman
fdbab455bd 0.2.5 2018-10-30 20:25:14 +02:00
Tommi Reiman
2a08ba2c98 Polish code 2018-10-30 19:51:19 +02:00
Unknown
b6e8a9d579 Add 0-ary version 2018-10-30 23:48:12 +09:00
Unknown
c8b2aa7bc4 Fix incorrect request key
It's :request-method not :method
2018-10-30 23:22:38 +09:00
Unknown
6c599f8862 Merge branch 'master' into trailing-slash 2018-10-30 23:10:23 +09:00
Unknown
820e13cffb Use status 301 and 308 2018-10-30 10:16:30 +09:00
Unknown
875934360e Add trailing slash handler 2018-10-29 10:10:22 +09:00
Unknown
46254975d9 Undo ensure-slash 2018-10-29 09:11:52 +09:00
Tommi Reiman
0095aece21 Router is injected into request in the default branch
* releated to #159
2018-10-28 18:20:35 +02:00
Unknown
33582b4c1c Strip slash instead
Also fix the only failing test
2018-10-28 18:22:41 +09:00
Unknown
2ba01028a0 Remove unnecessary let 2018-10-28 16:28:12 +09:00
Unknown
a8d6b32389 Use ensure-path for matching 2018-10-28 16:21:15 +09:00
Unknown
8d4c591f96 Use ensure-slash at compilation 2018-10-28 16:21:03 +09:00
Unknown
e2e96e8f1e Add ensure-slash function 2018-10-28 16:20:45 +09:00
Tommi Reiman
69aeb9adcc Release 0.2.4 2018-10-21 20:37:35 +03:00
Tommi Reiman
17c27eb732 Remove generated names from Data-Specs 2018-10-21 20:36:53 +03:00
Tommi Reiman
cb14cf017a Update to spec-tools 0.8.0-SNAPSHOT 2018-10-21 20:06:28 +03:00
Tommi Reiman
5046aebec8 Allow any kind of model 2018-10-16 20:25:43 +03:00
Unknown
6322bb99f1 Resolve reflection warnings 2018-10-16 22:51:43 +09:00
Tommi Reiman
a77a583c09
Merge pull request #155 from valerauko/resource-404
Custom handler for resource 404
2018-10-16 14:58:16 +03:00
Vale
21c888b8bc Update docstring 2018-10-10 13:57:59 +09:00
Vale
e84b25d4ac Custom handler for resource 404 2018-10-10 13:57:51 +09: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
b015eec2a5 for http-router too 2018-09-24 20:21:53 +03:00
Tommi Reiman
a620ec5999 Set Allow-header on default-options-handler 2018-09-24 20:19:42 +03:00
Tommi Reiman
f19aae6e77 fix #150 2018-09-23 16:42:45 +03:00
Tommi Reiman
da1cbf7121 Generate options-endpoints for ring by default 2018-09-23 10:52:17 +03:00
Tommi Reiman
158695d47b Support for top-level middleware in reitit-ring
See #143
2018-09-22 21:42:01 +03:00
Tommi Reiman
d81f20ae79 0.2.2 2018-09-09 22:29:00 +03:00
Tommi Reiman
676643f2e5 reitit-interceptors into reitit bundle 2018-09-07 23:09:08 +03:00
Tommi Reiman
7ecc2178c5 remove :compile key from compiled interceptors 2018-09-07 23:08:22 +03:00
Tommi Reiman
5d9d2a4e0a fix muuntaja interceptor 2018-09-07 23:08:05 +03:00
Tommi Reiman
57bcf2ab44 parameters-middleware & interceptor 2018-09-07 23:07:55 +03:00
Tommi Reiman
08349e61df multipart interceptor 2018-09-07 23:07:38 +03:00
Tommi Reiman
ca02680e2d exceptions 2018-09-07 20:04:08 +03:00
Tommi Reiman
de3fc480b4 muuntaja 2018-09-07 19:50:44 +03:00
Tommi Reiman
3d611d6cdb muuntaja-interceptors 2018-09-07 19:50:10 +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
8cd06c2bfb drop create- from interceptors 2018-09-02 17:30:43 +03:00
Tommi Reiman
08b2fc7bfd fix docs for coerce! fixes #131 2018-08-31 15:26:17 +03:00
Tommi Reiman
e4eae4f3b2 cleanup 2018-08-31 15:17:51 +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
Juho Teperi
d7c025d912 Fix FragmentHistory -stop method 2018-08-27 14:23:11 +03:00
Juho Teperi
b99e25ef4f Clean frontend routing docstrings 2018-08-27 14:23:11 +03:00
Tommi Reiman
a68cafe5ce intercerptors with cps-ring 2018-08-25 14:21:11 +03:00
Tommi Reiman
3e659a2b8b more tests 2018-08-25 13:30:54 +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
20fa00beaa public 2018-08-25 13:28:44 +03:00
Tommi Reiman
bd844bd816 http.coercion & http.spec
* TODO: need tests
2018-08-25 13:28:44 +03:00
Tommi Reiman
60f10cdc01 remove interceptors in favor of Sieppari 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
Tommi Reiman
8603224546 docs 2018-08-25 13:28:44 +03:00
Juho Teperi
2900e96337
Merge pull request #125 from metosin/frontend-fragment
Frontend fixes
2018-08-23 10:12:46 +03:00
Juho Teperi
adfba578ca
Merge pull request #126 from metosin/frontendrouter
reitit.frontend/router
2018-08-23 10:07:09 +03:00
Juho Teperi
82ad1fa6cc Clean duplicate require 2018-08-23 09:58:57 +03:00
Juho Teperi
e42c309144 Read query string in HTML5 router 2018-08-23 09:58:57 +03:00
Juho Teperi
0bd1b94274 Store uncoerced query-params in frontend match
This matches path-params and fragment.
2018-08-23 09:58:55 +03:00
Tommi Reiman
7b3aa5e631 better docs 2018-08-22 21:51:02 +03:00
Tommi Reiman
7cc8f84297 better docs 2018-08-22 19:39:04 +03:00
Tommi Reiman
5c835c5ad2 reitit.frontend/router 2018-08-22 18:56:31 +03:00
Tommi Reiman
c1d8ec99d8 muuntaja 2018-08-10 08:09:40 +03:00
Matthew Davidson
75f5e198e4 Merge master into url-decode-path-params 2018-08-07 21:14:35 -04: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
Tommi Reiman
df5d7fcad6 Fix Schema Upload explain 2018-08-07 11:40:05 +03: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
0d165e799f fix docs 2018-08-03 13:31:21 +03:00
Tommi Reiman
cc00ddb97c exception mw docs 2018-08-02 16:12:32 +03:00
Tommi Reiman
9fdb495ab2 :produces and :consumes can be overridden 2018-08-02 16:12:32 +03:00
Tommi Reiman
9330ee3bc5 multipart robusta 2018-08-02 16:12:32 +03:00
Tommi Reiman
4ea025dc83 more robust apidocs 2018-08-02 16:12:32 +03:00
Tommi Reiman
e879df54da case 2018-08-02 16:12:32 +03:00
Tommi Reiman
2c476177be Multipart-params revisited 2018-08-02 16:12:32 +03:00
Tommi Reiman
2ab54a1b99 Exception middleware revisited 2018-08-02 16:12:32 +03:00
Tommi Reiman
62cdfa2c52 cleanup multipart 2018-08-02 16:12:32 +03:00
Tommi Reiman
8156922ebc fix tests 2018-08-02 16:12:32 +03:00
Tommi Reiman
0f384c2b52 tune exceptions-middleware 2018-08-02 16:12:32 +03:00
Tommi Reiman
1eef610577 better names 2018-08-02 16:12:32 +03:00
Tommi Reiman
3a8eae6324 all muuntaja formats wrapped 2018-08-02 16:12:32 +03:00
Tommi Reiman
5c0cf19ef1 Muuntaja is a def 2018-08-02 16:12:32 +03:00
Tommi Reiman
805cb94d33 exception middleware tests 2018-08-02 16:12:32 +03:00
Tommi Reiman
b524736776 clj only 2018-08-02 16:12:32 +03:00
Tommi Reiman
fa639fc530 -alpha 2018-08-02 16:12:32 +03:00
Tommi Reiman
ed385afe5a add specs 2018-08-02 16:12:32 +03:00
Tommi Reiman
b54ee1a86b read encodes and decodes from Muuntaja! 2018-08-02 16:12:32 +03:00
Tommi Reiman
10ccbb72e3 wip 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