Ketting v8!
Ketting 8 has been in a testing state for so long, it was time to release. I've recently had lots of changes in my life (new job, kid), and this project has unfortunately not gotten enough love.
Ketting 8 had been planned for a long time to modernize the codebase a bit, so no massive changes. I hope to have some more time in the future to focus on this again. Some changes in this list had been ready for literally 2 years, so apologies to all that have waited for this.
BC Breaks
- We're no longer doing a webpack / minified build. Most people use this library in their own build system, and rarely webpack is still in use. I'm very much open to doing a browser build in the future using a more modern stack, but please open an issue with a request for this!
- We now require Node 18.
- No longer using
node-fetch
, which I'm sure is a welcome change.fetch()
is around pretty much everywhere these days.
Other changes
- #476: When
cache: no-store
is specified onfetch()
functions, Ketting will now no longer store responses with aContent-Location
in its internal cache. - #477: When storing responses with
Content-Location
, bodies are now cloned bodies storing so callees can still read the data. - Added HAL 'name' property to links.
- Updates for changes in Typescript strictness.
- Upgraded OAuth2 dependency to [@badgateway/oauth2-client][8].
- Submitting actions with missing required fields will now throw an exception.
- Actions that have pre-filled values will auto submit those values unless they are explicitly overridden.
- #459: Now uses the correct spelling of 'placeholder' in HAL forms (@dayre).
- Export the
FetchMiddleware
type. - #444: Allow multiple query parameters to be set with the same key when specifying template variables. (@qmachard)
- Upgrade to Typescript 5