middleware.ts 545 B

12345678910111213141516
  1. import { createMiddleware } from "@solidjs/start/middleware"
  2. import { LOCALE_HEADER, cookie, fromPathname, strip } from "~/lib/language"
  3. export default createMiddleware({
  4. onRequest(event) {
  5. const url = new URL(event.request.url)
  6. const locale = fromPathname(url.pathname)
  7. if (!locale) return
  8. url.pathname = strip(url.pathname)
  9. const request = new Request(url, event.request)
  10. request.headers.set(LOCALE_HEADER, locale)
  11. event.request = request
  12. event.response.headers.append("set-cookie", cookie(locale))
  13. },
  14. })