Start
@toriime/client
pozwala na łatwą komunikację z naszym API.
Instalacja
bash
$ npm install @toriime/client
bash
$ yarn install @toriime/client
bash
$ pnpm install @toriime/client
Użycie
ts
import { axiosClient } from '@/lib/axios';
import { createClient } from '@toriime/client';
export const toriimeClient = createClient({
axiosInstance: axiosClient,
});
ts
import axios from 'axios';
export const axiosClient = axios.create({
maxBodyLength: Infinity,
baseURL: 'http://localhost:3001/api',
withCredentials: true,
});
INFO
@toriime/client
wymaga wcześniej już zainicjalizowanego klienta axios.
Wysyłanie zapytań
ts
import { toriimeClient } from './client';
// To zapytanie pobierze wszystkie anime
const response = await toriimeClient.anime.all()
// Możemy użyć prostej funkcji do mapowania errorów
toriimeClient.mapError(response.error, (error) => ...)
const data = response.data
Wewnętrzne błędy
ts
export enum CustomCodes {
//sdk errors 4000-4999
GENERIC_SDK_ERROR = -4000, // kod ogólny w przypadku niespodziewanego błędu
COMMUNICATION_FAILED = -4001,
CLIENT_TIMEOUT = -4002,
}
export const errorList: ErrorMap = {
GENERIC_SDK_ERROR: {
code: CustomCodes.GENERIC_SDK_ERROR,
message: 'An unknown error occurred, please contact support.',
localized: 'sdk.errors.generic_error',
},
COMMUNICATION_FAILED: {
code: CustomCodes.COMMUNICATION_FAILED,
message: 'Communication with the server failed',
localized: 'sdk.errors.communication_failed',
},
CLIENT_TIMEOUT: {
code: CustomCodes.CLIENT_TIMEOUT,
message: 'The request timed out',
localized: 'sdk.errors.client_timeout',
},
};
GENERIC_SDK_ERROR
- ogólny kod błędu w przypadku niespodziewanego błęduCOMMUNICATION_FAILED
- błąd komunikacji z serwerem, np. brak połączeniaCLIENT_TIMEOUT
- zapytanie przekroczyło czas oczekiwania