middleware.ts 805 B

1234567891011121314151617181920
  1. import { createMiddleware } from "@solidjs/start/middleware"
  2. import { LOCALE_HEADER, cookie, fromPathname, strip } from "~/lib/language"
  3. import { normalizeReferralCode, referralCookie } from "~/lib/referral-invite"
  4. export default createMiddleware({
  5. onRequest(event) {
  6. const url = new URL(event.request.url)
  7. const locale = fromPathname(url.pathname)
  8. if (locale) {
  9. url.pathname = strip(url.pathname)
  10. const request = new Request(url, event.request)
  11. request.headers.set(LOCALE_HEADER, locale)
  12. event.request = request
  13. event.response.headers.append("set-cookie", cookie(locale))
  14. }
  15. const referralCode = normalizeReferralCode(url.searchParams.get("ref"))
  16. if (referralCode) event.response.headers.append("set-cookie", referralCookie(referralCode))
  17. },
  18. })