Este es el workaround documentado oficialmente para el bug conocido de navigator.locks colgándose en supabase-js v2
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled
Some checks failed
/ Deploy to Cloudflare Pages (push) Has been cancelled
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { createClient } from '@supabase/supabase-js'
|
import { createClient, processLock } from '@supabase/supabase-js'
|
||||||
|
|
||||||
const supabaseUrl = import.meta.env.VITE_SUPABASE_URL
|
const supabaseUrl = import.meta.env.VITE_SUPABASE_URL
|
||||||
const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY
|
const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY
|
||||||
@@ -7,7 +7,16 @@ if (!supabaseUrl || !supabaseAnonKey) {
|
|||||||
throw new Error('Variables de entorno VITE_SUPABASE_URL y VITE_SUPABASE_ANON_KEY son requeridas')
|
throw new Error('Variables de entorno VITE_SUPABASE_URL y VITE_SUPABASE_ANON_KEY son requeridas')
|
||||||
}
|
}
|
||||||
|
|
||||||
export const supabase = createClient(supabaseUrl, supabaseAnonKey)
|
export const supabase = createClient(supabaseUrl, supabaseAnonKey, {
|
||||||
|
auth: {
|
||||||
|
// Por defecto supabase-js v2 usa navigator.locks para coordinar refresh de sesión entre tabs.
|
||||||
|
// Si una tab queda colgada o se cierra sin liberar el lock, getSession()/queries quedan
|
||||||
|
// esperando ese lock para siempre. processLock usa coordinación solo en memoria (sin
|
||||||
|
// navigator.locks) — evita el deadlock a costa de no sincronizar refresh entre tabs,
|
||||||
|
// lo cual es aceptable para este producto (uso mayormente single-tab).
|
||||||
|
lock: processLock,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
// supabase.auth.getSession() puede colgarse indefinidamente si el cliente queda
|
// supabase.auth.getSession() puede colgarse indefinidamente si el cliente queda
|
||||||
// esperando un lock interno (navigator.locks) que nunca se libera. Esta barrera
|
// esperando un lock interno (navigator.locks) que nunca se libera. Esta barrera
|
||||||
|
|||||||
Reference in New Issue
Block a user