Referencia
Ver como Markdown@andco/sdk-svelte
Provider, contexto y botón para Svelte 5.
npm install @andco/sdk @andco/sdk-svelteRequiere Svelte 5: el estado de la sesión se expone con runes.
AndcoProvider
<AndcoProvider {clientOptions} {initialSession}>
{@render children()}
</AndcoProvider>| Prop | Qué es |
|---|---|
clientOptions |
opciones con las que construir la instancia |
client |
una instancia que la aplicación ya tiene |
initialSession |
una sesión ya resuelta |
useAndcoSession
useAndcoSession(): { readonly current: AndcoSession | null | undefined }Se lee con .current y es reactivo. Los tres estados son los mismos del resto del SDK. Cambia en cada republicación, incluida una rotación silenciosa de token — a diferencia de useAndco, que deliberadamente no cambia en ese caso. Úsalo cuando necesites la credencial como dato, por ejemplo una expiración.
{#if session.current === undefined}
<p>Cargando…</p>
{:else if session.current}
<p>{session.current.user.email}</p>
{:else}
<p>Sin sesión</p>
{/if}useAndcoUser
useAndcoUser(): { readonly current: AndcoUser | null | undefined }Comparte los tres estados de la sesión, pero cambia solo cuando cambia la persona — identificador, nombre, correo o avatar — nunca por un Grant ampliado ni por una rotación de token.
useAndco
useAndco(): { readonly current: AndcoClient | AndcoClientAuthed }current cambia exactamente cuando cambia la Identidad Autorizada — inicio de sesión, cierre de sesión, un Grant ampliado — y se mantiene igual ante una rotación de token. Mientras no hay Identidad Autorizada, current es la instancia sin autorizar, así que la referencia también es estable en la transición de sin-resolver a anónimo; para observar esa transición usa useAndcoSession. Devuelto detrás de un getter porque la reactividad de una rune no sobrevive al retorno por valor.
useAndcoAuthed
useAndcoAuthed(): { readonly current: AndcoClientAuthed | null }La misma regla de cambio que useAndco, pero current es null mientras no hay Identidad Autorizada, para que el camino "hacer esto solo si hay sesión" no necesite una comprobación aparte.
setAndcoContext
setAndcoContext(context: AndcoSvelteContext): voidAndcoSvelteContext es { client: AndcoClient; session: AndcoSession | null | undefined } — la instancia estable más la sesión cruda, no un AndcoSessionClient. Para proveer la instancia sin el componente, por ejemplo desde un layout que ya la construyó.
AndcoButton y AndcoIntentButton
<AndcoButton
authorization={{ scopes: ["openid", "email"] }}
onComplete={() => location.reload()}
onError={(error) => (message = error.message)}
/>Los callbacks son props on*, que es lo idiomático en Svelte 5. Las demás props son las mismas que en React y Vue.
Con SvelteKit
El provider necesita window. En un layout con renderizado en servidor, entrégale la sesión que el servidor resolvió:
<AndcoProvider {clientOptions} initialSession={data.andcoSession}>
{@render children()}
</AndcoProvider>