Joel Kaasinen
75faf709e2
fix: create-exception-middleware for deep hierarchies
...
The code was not finding the closest ancestor to the error type,
because `ancestors` is not ordered. Now the code does a DFS to find a
nearest ancestor. If the nearest ancestor is non-unique, an arbitrary
one is picked.
2026-01-09 09:26:21 +02:00
Joel Kaasinen
2c87d90bda
fix: create-exception-middleware for hierarchical keywords
...
Previously, the code was searching among the descendants, not the
ancestors, of the error type for an error handler. The test also got
this wrong, perhaps due to a mistake in the parameter order of derive.
2026-01-09 08:37:49 +02:00
Joel Kaasinen
c3a152a44e
doc: update CHANGELOG.md
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
2025-11-17 11:01:37 +02:00
Joel Kaasinen
c0bc789863
Merge pull request #767 from metosin/humanize-opts
...
feat: support humanize options
2025-11-17 10:59:23 +02:00
Joel Kaasinen
78aba57d2d
doc: document configuring malli registry
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
2025-11-14 14:58:52 +02:00
Joel Kaasinen
451b286f1d
doc: add brief docs for configuring humanized error messages
2025-11-14 14:16:48 +02:00
Joel Kaasinen
eb06404f1e
feat: fold malli :humanize-opts into :options
2025-11-14 14:06:43 +02:00
Joel Kaasinen
af7313bd9b
test: add test for overriding malli registry
2025-11-14 14:05:36 +02:00
Joel Kaasinen
ea58100fec
test: add test for malli coercion :humanize-opts
2025-11-14 13:51:23 +02:00
ertugrulcetin
a4576cc622
feat: support humanize options
2025-11-14 13:15:50 +02:00
Joel Kaasinen
9d88d92241
Merge pull request #766 from metosin/spec-and-or
...
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
Bump spec-tools, test openapi + s/keys + or
2025-11-14 11:49:34 +02:00
Joel Kaasinen
d16aac673e
test: test openapi + s/keys + or
2025-11-14 11:30:51 +02:00
Joel Kaasinen
dede2db213
chore: bump spec-tools
2025-11-14 11:22:03 +02:00
Joel Kaasinen
1dc961f661
Merge pull request #764 from metosin/483-doc-allow-symlinks
...
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
doc: document allow-symlinks? option
2025-10-31 13:41:31 +02:00
Joel Kaasinen
2ce9850de6
doc: document allow-symlinks? option
...
... for create-resource-handler and create-file-handler
fixes #483
2025-10-31 11:43:25 +02:00
Joel Kaasinen
0bc30e9361
doc: update CHANGELOG.md
2025-10-31 10:45:36 +02:00
Joel Kaasinen
9b26d5c0fd
Merge pull request #763 from metosin/remove-dead-code
...
refactor: remove unused reitit.dependency ns
2025-10-31 10:44:38 +02:00
Joel Kaasinen
e671f78741
Merge pull request #762 from metosin/745-coerce-response-content-type
...
testsuite / Clojure (Java 11) (push) Waiting to run
testsuite / Clojure (Java 17) (push) Waiting to run
testsuite / Clojure (Java 21) (push) Waiting to run
testsuite / ClojureScript (push) Waiting to run
testsuite / Lint cljdoc.edn (push) Waiting to run
testsuite / Check cljdoc analysis (push) Waiting to run
improve & document response coercion content-type selection
2025-10-31 09:48:00 +02:00
Joel Kaasinen
55f8d98bde
test: improve per-content-type coercion tests
...
- The :headers "Content-Type" case in per-content-type-test was
unrealistic. Ring would've thrown an exception at the non-string
:body.
- Test response Content-Type in muuntaja-per-content-type-coercion-test
2025-10-31 09:38:56 +02:00
Joel Kaasinen
342bae3ffe
refactor: remove unused reitit.dependency ns
...
leftover from #33 #210
2025-10-30 15:32:27 +02:00
Joel Kaasinen
ae52000b29
doc: update CHANGELOG.md
2025-10-29 10:57:59 +02:00
Joel Kaasinen
39c5ae86a4
doc: return random content-type from openapi example /pizza
2025-10-29 10:54:16 +02:00
Joel Kaasinen
7fb9c27e46
feat: use request Content-Type or :muuntaja/content-type to coerce
...
Previously, `extract-response-format-default` was only looking at
(-> request :muuntaja/response :format). This led to wrong behaviour
when there were separate schemas for separate response content types
and an explicitly picked content-type for the response.
2025-10-29 10:54:10 +02:00
Joel Kaasinen
f4da07c222
Release 0.9.2
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
2025-10-28 14:57:54 +02:00
Joel Kaasinen
d25dca19f6
chore: disable release signing harder
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
2025-10-24 16:14:11 +03:00
Joel Kaasinen
1b02662c78
chore: disable release signing
...
now that we have automated releases, there's no point
2025-10-24 16:08:19 +03:00
Joel Kaasinen
36af88b65e
doc: update release instructions
2025-10-24 16:08:08 +03:00
Joel Kaasinen
152c598858
Release 0.9.2-rc1
2025-10-24 15:52:47 +03:00
Joel Kaasinen
6d9632e85e
chore: automated release pipeline
2025-10-24 15:45:42 +03:00
Joel Kaasinen
5ff8ba2e3e
Merge pull request #761 from metosin/bump-deps
...
bump deps
2025-10-24 15:45:27 +03:00
Joel Kaasinen
c684c83c99
chore: update openapi-schema-validator, fix test
...
validator now disallows having both "example" and "examples"
2025-10-24 15:38:29 +03:00
Joel Kaasinen
defebb0f1f
chore: upgrade dependencies
...
... and pin pedestal versions since we don't work with 0.7/0.8
2025-10-24 15:31:39 +03:00
Joel Kaasinen
54c0935078
doc: updating deps
2025-10-24 15:26:20 +03:00
Joel Kaasinen
cde050f964
doc: remove old TODO
2025-10-24 14:24:38 +03:00
Joel Kaasinen
560c6d7969
doc: update CHANGELOG.md
2025-10-24 14:16:59 +03:00
Joel Kaasinen
abe95bfc17
Merge pull request #760 from metosin/fix/758-match-by-name-bang-nil
...
fix: match-by-name! should throw when match-by-name is PartialMatch
2025-10-24 14:15:37 +03:00
Joel Kaasinen
d2f44b8015
fix: match-by-name! should throw when match-by-name is PartialMatch
...
If a path param was nil, match-by-name (via impl/path-for) was
treating the parameter as missing, but match-by-name!
(via impl/throw-on-missing-path-params) was treating it as present.
That is:
(reitit/match-by-name router :page {:id "1"}) ;; => Match
(reitit/match-by-name router :page) ;; => PartialMatch
(reitit/match-by-name router :page {:id nil}) ;; => PartialMatch
(reitit/match-by-name! router :page {:id "1"}) ;; => Match
(reitit/match-by-name! router :page) ;; => ExceptionInfo: missing path-params for route /pages/:id -> #{:id}
(reitit/match-by-name! router :page {:id nil}) ;; => nil !!!
fixes #758
2025-10-24 09:58:03 +03:00
Joel Kaasinen
ef9dd495be
doc: update CHANGELOG.md
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
2025-10-13 15:41:31 +03:00
Joel Kaasinen
9509e40dae
Merge pull request #756 from metosin/feat/defaults-for-optional-keys
...
setting default values for optional keys in malli coercion
2025-10-13 15:38:45 +03:00
Joel Kaasinen
67918a3f9c
feat: reuse :default-values config key instead of adding a new one
2025-10-13 15:18:29 +03:00
Joel Kaasinen
45951aa82e
doc: update CHANGELOG.md
testsuite / Clojure (Java 11) (push) Waiting to run
testsuite / Clojure (Java 17) (push) Waiting to run
testsuite / Clojure (Java 21) (push) Waiting to run
testsuite / ClojureScript (push) Waiting to run
testsuite / Lint cljdoc.edn (push) Waiting to run
testsuite / Check cljdoc analysis (push) Waiting to run
2025-10-13 09:17:33 +03:00
Joel Kaasinen
1cdca2e3d5
Merge pull request #739 from Ramblurr/fix/top-level-mw-registry
...
Apply router options to top-level middleware chain
2025-10-13 09:14:36 +03:00
Joel Kaasinen
2f22838820
doc: using middleware from registry at ring-handler level
2025-10-13 09:09:11 +03:00
Joel Kaasinen
d809291553
test: ring-handler middleware from registry inside router
2025-10-13 09:01:21 +03:00
Joel Kaasinen
4e572e86d6
Merge remote-tracking branch 'origin/master' into fix/top-level-mw-registry
2025-10-13 08:50:38 +03:00
Joel Kaasinen
10700e0ca2
Merge pull request #757 from metosin/doc/multipart-middleware-order
...
testsuite / Clojure (Java 11) (push) Has been cancelled
testsuite / Clojure (Java 17) (push) Has been cancelled
testsuite / Clojure (Java 21) (push) Has been cancelled
testsuite / ClojureScript (push) Has been cancelled
testsuite / Lint cljdoc.edn (push) Has been cancelled
testsuite / Check cljdoc analysis (push) Has been cancelled
doc: multipart-middleware should be after coerce-request-middleware
2025-10-10 13:04:57 +03:00
Joel Kaasinen
3e0f1d3188
doc: multipart-middleware should be after coerce-request-middleware
2025-10-10 12:50:24 +03:00
Joel Kaasinen
f26dc1ab19
feat: :default-values-for-optional-keys for malli coercion
2025-10-10 08:51:05 +03:00
Joel Kaasinen
01766ee211
doc: update CHANGELOG.md
testsuite / Clojure (Java 11) (push) Waiting to run
testsuite / Clojure (Java 17) (push) Waiting to run
testsuite / Clojure (Java 21) (push) Waiting to run
testsuite / ClojureScript (push) Waiting to run
testsuite / Lint cljdoc.edn (push) Waiting to run
testsuite / Check cljdoc analysis (push) Waiting to run
2025-10-09 15:30:55 +03:00
Joel Kaasinen
79627aea7b
Merge pull request #755 from metosin/feat/multimethod-as-handler
...
feat: allow multimethods as :handlers in validation
2025-10-09 15:26:37 +03:00