Commit graph

702 commits

Author SHA1 Message Date
Tommi Reiman
c8eaa955c3 Revert fast params in a Trie 2019-05-01 22:40:44 +03:00
Tommi Reiman
1326d76936 Faster params in Trie 2019-05-01 22:40:44 +03:00
Tommi Reiman
68d68402d9 Fix Java Trie example 2019-05-01 22:40:44 +03:00
Tommi Reiman
c678ca9789 Print both request & response diffs 2019-04-29 15:29:02 +03:00
Juho Teperi
51c5aad492 Refactor ignore-anchor-click check to predicate function 2019-04-29 10:18:41 +03:00
Juho Teperi
5ffb9fc59f Add ignore-anchor-click function 2019-04-29 10:15:49 +03:00
Alex King
b50b44cced Invert link 'target' check 2019-04-29 10:15:49 +03:00
Alex King
a25f336d80 Ignore anchors with '_self' not 'self' 2019-04-29 10:15:49 +03:00
Tommi Reiman
674b60a124 spell-spec 2019-04-28 17:06:50 +03:00
Tommi Reiman
dc92f6f48e http-swagger++ 2019-04-28 17:06:50 +03:00
Valtteri Harmainen
f7332d3bc4 Fix empty query params map resulting in redundant '?' in path 2019-04-27 08:22:08 +03:00
Juho Teperi
9241de9a43
Merge pull request #258 from fraxu/shadow-dom-fix
Support html5 links inside Shadow DOM
2019-04-15 11:13:15 +03:00
Antti Leppänen
c9076e57ad Use getBrowserEvent method instead of _event property 2019-04-12 07:12:46 +03:00
Antti Leppänen
733958404e Use doc-string. 2019-04-10 12:14:21 +03:00
Antti Leppänen
b258e0abba Support html5 links inside Shadow DOM 2019-04-10 09:03:48 +03:00
mathieu
909e82168a Support Sieppari-style error handlers with pedestal
The reitit-pedestal Executor checks if the mounted interceptors have
1-arity error handler. If so, they are wrapped into a 2 arrity function.
2019-04-04 09:38:39 +02:00
Tommi Reiman
a0d833e645 0.3.1 2019-03-18 08:27:25 +02:00
Tommi Reiman
d21dd03dfa 0.3.0 2019-03-17 14:22:15 +02:00
Juho Teperi
057fae9e46
Update easy.cljs 2019-03-15 16:49:57 +02:00
Tommi Reiman
72a0ad2a5b Push ns-records into user ns 2019-03-07 10:54:01 +02:00
Tommi Reiman
36634abd39 :reitit.trie/parameters option takes sequence of keys 2019-03-07 10:45:16 +02:00
Tommi Reiman
1d5d5f663b Support Clojure 1.9.0 2019-03-07 08:49:26 +02:00
Tommi Reiman
e41a50cb80 20% faster wildcard parameters with records 2019-03-07 08:20:41 +02:00
Tommi Reiman
55a5133e85 Rename :reitit.core/trie-compiler -> :reitit.trie/trie-compiler 2019-03-07 08:19:28 +02:00
Tommi Reiman
5ab1f2829e Decode in single sweep, 8% faster 2019-03-07 08:17:17 +02:00
Tommi Reiman
5b19298803 CatchAll matcher catch with empty parameter, fixes #230 2019-03-06 19:49:27 +02:00
Tommi Reiman
850b47134a Don't reorder routes with :linear-router, fixes #229 2019-03-06 19:24:16 +02:00
Miikka Koskinen
1ec4df974d Fix typo 2019-03-04 09:54:19 +02:00
Tommi Reiman
76b90d3598 Document spec-tools change + cause reasoning 2019-03-04 09:41:15 +02:00
Tommi Reiman
dc34720fee Fixed based on Miikka's review 2019-03-03 21:55:39 +02:00
Tommi Reiman
549d2a0f97 Adhere spec-tools 0.9.0 changes 2019-03-03 20:54:47 +02:00
Tommi Reiman
a2843dd097 New reitit-dev module for pretty errors 2019-03-03 20:54:21 +02:00
Tommi Reiman
59560860d8 Finalize Trie & cleanup 2019-03-03 20:20:34 +02:00
Tommi Reiman
a44267ba85 Fix reflection warnings 2019-03-01 22:16:29 +02:00
Tommi Reiman
998bf4a0d4 Empty colon-params are ignored 2019-03-01 22:12:11 +02:00
Miikka Koskinen
680414a209 Point each project.clj to the git directory
This way the released JARs should include the git commit they were built
from.
2019-03-01 13:20:43 +02:00
Tommi Reiman
5713afac34 best-effort to retain route order with swagger 2019-02-28 14:59:48 +02:00
Tommi Reiman
251f547b88 rebase-error-fix 2019-02-28 12:16:51 +02:00
Tommi Reiman
f0a6ceb837 rename internals for clarity 2019-02-28 12:12:28 +02:00
Tommi Reiman
3aae55bd8c Welcome TrieCompiler 2019-02-28 12:12:28 +02:00
Tommi Reiman
778a8b97b9 Review small fixes 2019-02-28 12:12:28 +02:00
Tommi Reiman
d0cfdf304a Polish 2019-02-28 12:12:28 +02:00
Tommi Reiman
e60d176a2d Validate after route conflicts 2019-02-28 12:12:28 +02:00
Tommi Reiman
9422cd28c1 create empty path-parameters at creation time, 266ns->251ns (-6%) 2019-02-28 12:12:28 +02:00
Tommi Reiman
950fef88d2 Use exception/fail! in all creation-time exceptions
... to be companioned with a slick error printer
2019-02-28 12:12:28 +02:00
Tommi Reiman
ad92c437e6 More dead code 2019-02-28 12:11:05 +02:00
Tommi Reiman
d68e1b81fb FIx cljs, welcome reitit.exception! 2019-02-28 12:11:05 +02:00
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
Tommi Reiman
bf3007bfe1 Support for sequential child routes 2018-07-26 10:07:49 +03:00
Juho Teperi
ba10470fbb
Merge pull request #118 from metosin/frontend-routing-3
Frontend routing 3
2018-07-24 14:02:53 +03:00
Juho Teperi
08156f6a6d Replace Closure Html5History
- Create History protocol and two implementations: FragmentHistory and
Html5History
- API follows now Html5 history, i.e. push-state and replace-state
- path-prefix is removed
2018-07-24 13:58:22 +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
8b6bc9bb80 [:swagger :id] defaults to :reitit.swagger/default 2018-07-21 09:38:44 +03:00
Tommi Reiman
d6d2ee478c r/routes & r/compiled-routes 2018-07-18 12:17:16 +03:00
Tommi Reiman
5ded652147 coercion/coerce! can be used now 2018-07-17 12:41:29 +03:00
Tommi Reiman
4bbc1564ae cleanup imports 2018-07-17 12:41:19 +03:00
Juho Teperi
d90b7cff04
Merge pull request #108 from metosin/frontend-routing-easy
Add easy-simple wrapper over frontend router
2018-07-17 10:21:09 +03:00
Tommi Reiman
7514d1b263 rename extract-request-format 2018-07-16 16:01:34 +03:00
Tommi Reiman
346fbad775 Fix #109 2018-07-16 09:34:52 +03:00
Juho Teperi
d0f42459ee Add easy-simple wrapper over frontend router 2018-07-13 14:25:36 +03:00
Juho Teperi
2152bf0345 Use setToken in a click handler and add set-token function 2018-07-12 22:52:43 +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
82f8aaa8cf Add frontend-controllers example 2018-07-12 12:49:14 +03:00
Juho Teperi
8971c8fd2b Add tests for missing route and params warnings 2018-07-12 12:49:14 +03:00
Juho Teperi
ae109e5350 Log warnings about missing route or params 2018-07-12 12:49:14 +03:00
Juho Teperi
264981fd3d Start version 0.1.4 2018-07-12 12:49:14 +03:00
Juho Teperi
245902bd4d Use query-string fn in core 2018-07-12 12:49:14 +03:00
Juho Teperi
434bc25cd6 Format code 2018-07-12 12:49:14 +03:00
Juho Teperi
7f1b2ce417 Check if js/location exists 2018-07-12 12:49:10 +03:00
Juho Teperi
61a9871ebb Fix empty fragment url 2018-07-12 12:48:24 +03:00
Juho Teperi
50faacab25 Fix tests 2018-07-12 12:48:20 +03:00
Juho Teperi
6553795cb5 Add some frontend history tests 2018-07-12 12:46:45 +03:00
Juho Teperi
3611a1bafe Fix frontend routing tests, add controller ns 2018-07-12 12:46:45 +03:00
Juho Teperi
417f35a318 Create example 2018-07-12 12:46:41 +03:00
Juho Teperi
468a0947d2 Frontend routing implementation 2018-07-12 11:02:35 +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
3af1bd2083 Allow empty response :body for Swagger 2018-06-24 19:20:22 +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
8f7bb94c94 Support ds/maybe in spec-coercion 2018-06-14 13:40:17 +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
b2c0b2fdfa confirm to ring spec, fixes #83 2018-06-06 10:34:23 +03:00
Tommi Reiman
4a4cd5ae9e response/redirect 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
a99789216c Use redirects for index-files 2018-06-06 10:34:23 +03:00
Tommi Reiman
fa078470c5 swagger-ui path work, wip 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
56203ba11d no default method in ring 2018-06-06 10:34:23 +03:00
Tommi Reiman
4be84d22f4 Fix example 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
361e778fa3 0.1.2-SNAPSHOT, update deps 2018-05-29 08:03:15 +03:00
Kirill Chernyshov
43f5a9ebe8 Fixes after review
* Support catch-all-param as a swagger path template part
2018-05-29 01:07:22 +02:00
Kirill Chernyshov
b7341265e9 Fix paths in swagger.json for endpoints with path parameters 2018-05-28 18:09:03 +02:00
Tommi Reiman
fc71947bbb 0.1.1 2018-05-20 21:55:46 +03:00
Tommi Reiman
1262a1fab7 docs 2018-05-20 21:41:38 +03:00
Tommi Reiman
13c02ac51c no-op-transformer 2018-05-14 08:31:49 +03:00
Tommi Reiman
8a320164a4 welcome swagger-ui! 2018-05-14 08:21:47 +03:00
Tommi Reiman
e137b8baec linear-router serves unnamed catch-all paths 2018-05-14 08:21:03 +03:00
Tommi Reiman
027d46508b Update deps 2018-05-14 08:20:29 +03:00
Tommi Reiman
05fbaa1110 Initial swagger-ui integration 2018-05-07 08:59:21 +03:00
Tommi Reiman
0b711b2560 Support :index-files in create-resource-handler 2018-04-29 16:51:53 +03:00
Tommi Reiman
f8a43f0996 use ring for serving resources. 2018-04-25 08:32:01 +03:00
Tommi Reiman
fc0b634865 . 2018-04-24 23:58:15 +03:00
Tommi Reiman
4e49316383 Fix based on Miikka’s comments 2018-04-24 21:17:25 +03:00
Tommi Reiman
8ebcdc8429 swagger & static resource docs 2018-04-23 08:27:16 +03:00
Tommi Reiman
c25da60053 ring/create-resource-handler 2018-04-22 22:51:14 +03:00
Tommi Reiman
acbef8527c ring/routes, fix async default handling 2018-04-22 22:50:17 +03:00
Tommi Reiman
f66850dacb swagger-spec-handler => create-swagger-handler 2018-04-22 21:39:38 +03:00
Tommi Reiman
6d387c8822 perf tuning ring-handler 2018-04-22 17:55:32 +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
5da599ac5b Cleanup 2018-03-18 11:32:44 +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
9a2a8a1f16 Tests for swagger 2018-03-17 14:19:23 +02:00
Tommi Reiman
f87cd2f09f Support both Schema & Spec swagger 2018-03-17 11:06:53 +02:00
Tommi Reiman
b43c8cfed9 Swagger WIP 2018-03-17 10:53:19 +02:00
Tommi Reiman
32c3082475 Initial reitit-swagger 2018-03-17 10:21:27 +02:00
Tommi Reiman
d4a4949ad0 0.1.0 2018-02-19 22:03:30 +02:00
Tommi Reiman
e1fbe4460f Update deps 2018-02-19 07:43:42 +02:00
Tommi Reiman
3005e04a6e Inject Match and Router under reitit.core ns in ring 2018-02-12 07:49:24 +02:00
Tommi Reiman
c50d95ec3e . 2018-02-11 21:44:47 +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
fda6a1e06f Support not-found with ring 2018-01-23 20:29:22 +02:00
Dmitri Sotnikov
6625cf31d7
allow custom default-handler to ring-router 2018-01-07 16:36:26 -05: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
708fa24590 rename package 2017-12-31 11:30:55 +02:00
Tommi Reiman
b7b0b7c81d Docs for Ring spec validation 2017-12-29 11:56:01 +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
1a9583b31b Support ring-route-data validation 2017-12-26 22:41:17 +02:00
Tommi Reiman
0dbb75ad44 Add :path & :method to Endpoints 2017-12-26 22:40:53 +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
8a48d6790b . 2017-12-16 10:51:32 +02:00
Tommi Reiman
1427f12c53 fix reflection warnings 2017-12-14 11:45:01 +02:00