fast-request-api
v1.0.3
Published
That is a api fetching library for beginner | FAST API | Developed by KhayalSadigov
Downloads
450
Readme
Fast HTTP Client 🚀
A lightweight, powerful, and extensible HTTP client built on top of fetch, inspired by axios.
✨ Features
- 🔗 Base URL support
- ⚡ Promise-based API
- 🔄 Request & response interceptors
- ⏱ Timeout handling
- 🔁 Retry mechanism with custom logic
- 🔐 Cancel requests (CancelToken + AbortController)
- 🔧 Request/Response transforms
- 📦 Flexible config system
- 🧠 Smart query params builder
- ❗ Rich error handling
📦 Installation
npm install fast-request-api🚀 Quick Start
const fast = require('fast-request-api');
fast.createBaseUrl('api', 'https://api.example.com');
const users = await fast.get('api', '/users');
console.log(users);🔧 Configuration
Base URL
fast.createBaseUrl('api', 'https://api.example.com');Timeout
fast.setTimeout(5000); // 5 secondsRetry
fast.setRetry(3);Custom retry logic:
fast.get('api', '/users', {
retryCondition: (error) => error.status >= 500,
retryDelay: 1000,
});🔄 Interceptors
Request Interceptor
fast.useRequest((config) => {
config.headers = {
...config.headers,
Authorization: 'Bearer TOKEN',
};
return config;
});Response Interceptor
fast.useResponse(
(response) => response,
(error) => {
console.error('Error:', error.message);
return error;
}
);🔐 Cancel Requests
Using CancelToken
const { token, cancel } = fast.CancelToken.source();
fast.get('api', '/users', {
cancelToken: token,
});
cancel('Request canceled');Using AbortController
const controller = new AbortController();
fast.get('api', '/users', {
signal: controller.signal,
});
controller.abort();🔧 Transforms
Request Transform
fast.post('api', '/users', {
name: 'John',
}, {
transformRequest: (data) => {
return { ...data, role: 'admin' };
},
});Response Transform
fast.get('api', '/users', {
transformResponse: (data) => {
return data.items;
},
});📡 Request Methods
fast.get(key, endpoint, config);
fast.post(key, endpoint, data, config);
fast.put(key, endpoint, data, config);
fast.patch(key, endpoint, data, config);
fast.delete(key, endpoint, config);⚙️ Advanced Usage
Custom Params
fast.get('api', '/users', {
params: {
page: 1,
filter: {
role: 'admin',
},
},
});Custom Response Type
fast.get('api', '/file', {
responseType: 'blob',
});Available types:
json(default)textblobarrayBufferformDataraw
❗ Error Handling
All errors are instances of RequestError:
try {
await fast.get('api', '/users');
} catch (err) {
console.log(err.status);
console.log(err.message);
}🏗 Create Instance
const client = fast.create();
client.createBaseUrl('api', 'https://api.example.com');🔄 Reset Instance
fast.reset();📌 Notes
- Built on top of native
fetch - Works in both Node.js and browsers
- No external dependencies
