axios-smart-client
v1.0.3
Published
A smart Axios wrapper with multi-baseURL support, token injection, retry logic, and simplified API usage.
Downloads
34
Maintainers
Readme
axios-smart-client
🚀 Smart Axios Wrapper for Developers
A plug-and-play HTTP client that simplifies API requests using axios, especially in real-world apps with:
- Multiple base URLs (e.g., auth, user, admin)
- Authorization tokens (from localStorage, cookies, etc.)
- Retry logic
- Loading indicators and unified error handling
- TypeScript, CommonJS, and ESM support
- No need to install axios separately! axios is installed automatically as a dependency.
✨ Features
- ✅ Multi-baseURL support
- ✅ Token injection
- ✅ Retry failed requests
- ✅ Unified error formatting
- ✅ TypeScript, CommonJS, and ESM support
- ✅ Tiny, dependency-light, and fast
🚀 Installation
npm install axios-smart-client🛠 Usage
JavaScript (CommonJS)
const { init, api } = require('axios-smart-client');
init({
baseURLs: { user: 'https://api.example.com/user' },
getToken: () => localStorage.getItem('token'),
showLoading: true,
retries: 2,
onError: (err) => alert(err.message),
});
api('user', 'get', '/profile')
.then(user => console.log(user))
.catch(err => console.error(err));JavaScript (ESM) or TypeScript
import { init, api } from 'axios-smart-client';
init({
baseURLs: { user: 'https://api.example.com/user' },
getToken: () => localStorage.getItem('token'),
showLoading: true,
retries: 2,
onError: (err) => alert(err.message),
});
const user = await api('user', 'get', '/profile');⚙️ API
init(config)
baseURLs:{ [key: string]: string }— Required. Map of base names to URLs.retries:number— Optional. Number of retry attempts (default: 1).showLoading:boolean— Optional. Show loading logs (default: false).getToken:() => string | null— Optional. Function to get auth token.onError:(err) => void— Optional. Error handler callback.
api(base, method, url, data?)
base:string— The base key frombaseURLs.method:string— HTTP method (get, post, put, patch, delete).url:string— Endpoint path.data:any— Optional. Payload for POST/PUT/PATCH.
Returns a Promise resolving to the response data or rejecting with a normalized error.
📦 License
MIT
