Alexander Kiel
a19849fe58
Make Map Destructuring of Namespaced Keys more Beautiful
...
It's possible to put the :keys keyword in the namespace of the keys one likes to
destructure. With that one can use symbols in the vector again. One advantage of
having symbols is, that Cursive grays them out if not used. I found two
occurrences of unused destructured keys.
2019-07-13 17:02:41 +03:00
Tommi Reiman
2e85f44a7e
0.3.9
2019-06-16 20:20:49 +03:00
Tommi Reiman
dd7a01b1bc
0.3.8
2019-06-15 11:49:45 +03:00
Tommi Reiman
46897f3927
Update docs
2019-06-09 20:46:20 +03:00
Tommi Reiman
c9281f0e89
support :parameter-syntax option in router
2019-06-09 20:29:03 +03:00
Tommi Reiman
12543b1c30
0.3.7
2019-05-25 16:00:45 +03:00
Tommi Reiman
a314e06887
0.3.6
2019-05-23 14:37:58 +03:00
Tommi Reiman
568dbad3a3
0.3.5
2019-05-22 21:25:56 +03:00
Tommi Reiman
4178acde5f
Make Trie$Match immutable
2019-05-22 21:10:51 +03:00
Tommi Reiman
60ee39bd53
Trie$Match is mutable, fixes #277
2019-05-22 16:39:37 +03:00
Tommi Reiman
3381fe34e5
0.3.4
2019-05-20 20:14:14 +03:00
Tommi Reiman
32fced15e8
Release 0.3.3
2019-05-16 07:03:17 +03:00
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