Yep, it's super nice. The Service Workers API also makes this really easy too. I experimented with compiling a Rust Axum server to WASM and then ran it in my service worker. Also, thanks for incorporating fetch into htmx!
I thought I'd include an example of replacing fetch for anyone that come across this.
const originalFetch = window.fetch;
window.fetch = function(url, options) {
if (url.includes('/api/user')) {
const mockUser = {id: 1, name: 'John Doe', email: 'john@example.com'};
return Promise.resolve(new Response(JSON.stringify(mockUser)));
}
return originalFetch(url, options);
};
https://developer.mozilla.org/en-US/docs/Web/API/ServiceWork...
in htmx 4 you are able to swap it on a per-trigger basis, so need to muck w/the global fetch function:
Oh that’ll be much nicer. Would myCustomFetch then need to return a Response?
https://developer.mozilla.org/en-US/docs/Web/API/Response