Tommi Reiman
7e7b57c913
Add ex-message shim
2019-05-16 06:51:10 +03:00
Tommi Reiman
ad0bc7e013
Better errors for route-data merge errors
2019-05-15 22:54:35 +03:00
Tommi Reiman
2e7729349e
0.3.2
2019-05-13 17:06:37 +03:00
Tommi Reiman
419dd24316
Route-data validation docs
2019-05-11 22:31:58 +03:00
Tommi Reiman
e70837b140
Merge pull request #263 from metosin/north
...
Closed spec validation demoed in Clojure/North (WIP)
2019-05-10 14:28:39 +03:00
Tommi Reiman
a9bdceeeb6
reitit.spec/wrap spec-tools.spec/closed
2019-05-01 22:40:44 +03:00
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
674b60a124
spell-spec
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
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
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
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
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
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
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
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
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