From 4d72a953dd964d10a9b74041e2ed7a6c6a348677 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Wed, 21 Jan 2026 22:01:55 +0100 Subject: [PATCH] fix for Reflect.getMetadata --- vite.config.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/vite.config.ts b/vite.config.ts index 9da364416..68c2db1ed 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,9 +4,23 @@ import tailwindcss from "@tailwindcss/vite"; import { tanstackStart } from "@tanstack/react-start/plugin/vite"; import viteReact from "@vitejs/plugin-react"; import { nitro } from "nitro/vite"; +import type { Plugin } from "vite"; import { defineConfig } from "vite"; import { VitePWA } from "vite-plugin-pwa"; +// Polyfill for Reflect.getMetadata() (required by @better-auth/passkey) +const REFLECT_POLYFILL = `if("function"!=typeof Reflect.getMetadata){const e=new WeakMap,t=(t,a)=>e.get(t)?.get(a),a=(t,a)=>{let n=e.get(t);n||(n=new Map,e.set(t,n));let f=n.get(a);return f||(f=new Map,n.set(a,f)),f},n=(e,a,f)=>{const c=t(a,f);if(c?.has(e))return c.get(e);const s=Object.getPrototypeOf(a);return s?n(e,s,f):void 0};Reflect.getMetadata=(e,t,a)=>n(e,t,a),Reflect.getOwnMetadata=(e,a,n)=>t(a,n)?.get(e),Reflect.defineMetadata=(e,t,n,f)=>a(n,f).set(e,t),Reflect.hasMetadata=(e,t,a)=>void 0!==n(e,t,a),Reflect.hasOwnMetadata=(e,a,n)=>t(a,n)?.has(e)??!1,Reflect.metadata=(e,t)=>(n,f)=>a(n,f).set(e,t)};`; + +function reflectPolyfillPlugin(): Plugin { + return { + name: "reflect-polyfill", + renderChunk(code, chunk) { + if (chunk.fileName.includes("passkey")) return `${REFLECT_POLYFILL}\n${code}`; + return null; + }, + }; +} + const config = defineConfig({ define: { __APP_VERSION__: JSON.stringify(process.env.npm_package_version), @@ -51,6 +65,7 @@ const config = defineConfig({ }, plugins: [ + reflectPolyfillPlugin(), lingui(), tailwindcss(), nitro({ plugins: ["plugins/1.migrate.ts"] }),