@void-snippets/client
Configuration
configure() and getConfiguredInstance() for shared axios instance.
#configure(instance: AxiosInstance): void
Registers a single axios instance that every ResourceService subclass will use. Call this once — at your app's entry point — and every service you create picks it up automatically.
typescript
// main.ts — run this before anything else
import axios from 'axios';
import { configure } from '@void-snippets/client';
const http = axios.create({
baseURL: import.meta.env.VITE_API_URL,
headers: { 'Content-Type': 'application/json' },
timeout: 10_000,
});
// Auth token on every request
http.interceptors.request.use((config) => {
const token = localStorage.getItem('access_token');
if (token) config.headers.Authorization = `Bearer ${token}`;
return config;
});
// Redirect to login on 401
http.interceptors.response.use(
(res) => res,
(err) => {
if (err.response?.status === 401) window.location.href = '/auth/login';
return Promise.reject(err);
},
);
configure(http); // done — all services are now wiredCall
configure()before anyResourceServicesubclass is instantiated. If you create a service (e.g.const ContactsApis = new ContactsApiService()) at module scope,configure()must run before that module is imported.