If you don't love js/ts maybe you'd like Civet, which transpiles to js/ts and has Astro integration. (No relationship, I've just been looking at it myself.)
transpiling to JS that has if, if else structures instead of just early return if makes me not trust it (based on first "pattern matching" example on civet.dev site). I guess I have my prejudices.
https://civet.dev