Pachetul @tracio/svelte încapsulează pachetul de bază @tracio/sdk și expune primitive Svelte idiomatice: un apel init unic și store-uri readable care îți oferă ID-ul vizitatorului și rezultatul identificării.
npm install @tracio/svelte @tracio/sdksvelte (5) este o peer dependency și se presupune că este deja instalat în aplicația ta.
Apelează Tracio.init({ publicKey }) o singură dată, aproape de rădăcina aplicației tale — în +layout.svelte pentru SvelteKit — protejat de browser, astfel încât să nu ruleze niciodată în timpul randării pe server.
<!-- +layout.svelte --><script> import { Tracio } from "@tracio/svelte" import { browser } from "$app/environment" if (browser) Tracio.init({ publicKey: import.meta.env.VITE_TRACIO_KEY })</script><slot />Starea TRACIO este expusă ca store-uri readable Svelte. Fiecare valoare a store-ului este un QueryState care transportă data, isLoading și error. Consumă store-ul cu prefixul $: $visitor.data, $visitor.isLoading, $visitor.error.
Vii dinspre React?
QueryStatedin Svelte omite flag-ulisFetchedal hook-urilor React, iaruseVisitorId()nu expune o metodă imperativă de fetch — doaruseTracioResult()transportă ungetData().
Returnează un store readable de forma { data, isLoading, error }, unde data este identificatorul stabil al vizitatorului (string | undefined).
<script> import { useVisitorId } from "@tracio/svelte" const visitor = useVisitorId()</script>{$visitor.data}Returnează un store readable de forma { data, isLoading, error } care deține întregul TracioResult (ID-ul vizitatorului plus detecția de bot). Store-ul returnat transportă de asemenea o metodă getData() (extinde Readable) pentru (re)fetch imperativ. opts.immediate are valoarea implicită true; transmite { immediate: false } pentru a amâna fetch-ul până când apelezi getData() — de exemplu în spatele unui consent gate.
<script> import { useTracioResult } from "@tracio/svelte" const result = useTracioResult({ immediate: false }) // $result.data / $result.isLoading / $result.error // result.getData(): Promise<void> — call to fetch on demand</script>Escape hatch care returnează TracioInstance-ul subiacent (sau undefined când Tracio.init() nu a rulat pentru arborele curent) pentru utilizări avansate. Returnează instanța direct — nu există niciun store sau obiect wrapper de destructurat.
<script> import { useTracio } from "@tracio/svelte" const tracio = useTracio()</script><!-- +layout.svelte --><script> import { Tracio } from "@tracio/svelte" import { browser } from "$app/environment" if (browser) Tracio.init({ publicKey: import.meta.env.VITE_TRACIO_KEY })</script><slot /><!-- AnyComponent.svelte --><script> import { useVisitorId } from "@tracio/svelte" const visitor = useVisitorId()</script>{#if $visitor.isLoading}Loading…{:else if $visitor.error}Error: {$visitor.error.message}{:else}Visitor: {$visitor.data}{/if}@tracio/sdk pe care se construiesc store-urile