Błędy i transport
Klasy błędów
Section titled “Klasy błędów”SDK eksportuje pięć głównych klas błędów:
TipplyErrorTipplyHttpErrorTipplyAuthenticationErrorTipplyResponseValidationErrorTipplyConfigurationError
Co zawiera błąd
Section titled “Co zawiera błąd”Każdy błąd dziedziczący po TipplyError niesie kontekst requestu:
codemethodurlstatusheadersbody
Typowy wzorzec obsługi
Section titled “Typowy wzorzec obsługi”import { TipplyAuthenticationError, TipplyConfigurationError, createTipplyClient,} from "tipply-sdk-ts";
try { const client = createTipplyClient({ authCookie: process.env.TIPPLY_AUTH_COOKIE!, });
await client.me.get();} catch (error) { if (error instanceof TipplyAuthenticationError) { console.error("Token jest nieważny albo wygasł."); throw error; }
if (error instanceof TipplyConfigurationError) { console.error("Klient jest źle skonfigurowany."); throw error; }
throw error;}TipplyClientOptions
Section titled “TipplyClientOptions”type TipplyClientOptions = { session?: TipplySessionOptions; transport?: TipplyTransportOptions; validation?: boolean; authCookie?: string; getAuthCookie?: () => string | Promise<string | null | undefined> | null | undefined; cookieName?: string; includeCredentials?: boolean; appOrigin?: string; fetch?: typeof fetch; proxyBaseUrl?: string; publicBaseUrl?: string; validateResponses?: boolean;};Najważniejsze informacje:
authCookieigetAuthCookiesą skrótami dla konfiguracji sesjivalidationivalidateResponsessterują walidacją odpowiedzitransportpozwala nadpisać bazowe URL-e, timeout ifetch
TipplySessionOptions
Section titled “TipplySessionOptions”type TipplySessionOptions = | { authCookie: string } | { getAuthCookie: () => string | Promise<string | null | undefined> | null | undefined } | { browserSession: true };TipplyTransportOptions
Section titled “TipplyTransportOptions”type TipplyTransportOptions = { fetch?: typeof fetch; proxyBaseUrl?: string; publicBaseUrl?: string; alertSocketBaseUrl?: string; commandsSocketBaseUrl?: string; appOrigin?: string; cookieName?: string; includeCredentials?: boolean; timeoutMs?: number;};Domyślne wartości:
proxyBaseUrl:https://proxy.tipply.plpublicBaseUrl:https://tipply.pl/apialertSocketBaseUrl:https://alert-ws.tipply.plcommandsSocketBaseUrl:https://ws.tipply.plappOrigin:https://app.tipply.plcookieName:auth_tokenincludeCredentials:truetimeoutMs:30000
Nadpisanie transportu
Section titled “Nadpisanie transportu”const client = createTipplyClient({ authCookie: process.env.TIPPLY_AUTH_COOKIE!, transport: { timeoutMs: 10_000, fetch: customFetch, },});To jest przydatne w:
- testach
- własnych runtime’ach
- środowiskach z niestandardowym
fetch
RequestOptions
Section titled “RequestOptions”Większość metod przyjmuje opcjonalny drugi argument:
type RequestOptions = { signal?: AbortSignal; timeoutMs?: number;};Przykład:
const abortController = new AbortController();
const tips = await client.tips .list() .limit(20) .get({ signal: abortController.signal, timeoutMs: 5_000, });Walidacja odpowiedzi
Section titled “Walidacja odpowiedzi”Walidacja odpowiedzi jest domyślnie włączona. Możesz ją wyłączyć:
const client = createTipplyClient({ authCookie: process.env.TIPPLY_AUTH_COOKIE!, validation: false,});W praktyce warto zostawić walidację aktywną, zwłaszcza jeśli SDK jest częścią większej integracji.