Лёгкий и расширяемый HTTP-клиент с поддержкой middleware для JavaScript и TypeScript проектов.
- 🔧 Гибкая система middleware - перехватывайте и модифицируйте запросы и ответы
- 🛡️ Полная типизация TypeScript - автодополнение и проверка типов
- 🚀 Современный API - основан на Fetch API
- 📦 Минимальный размер - без лишних зависимостей
- 🎯 Простота использования - интуитивный API
npm install requestify.jsimport { HttpClient } from 'requestify.js';
const api = new HttpClient({
baseUrl: 'https://api.example.com'
});
// GET запрос
const data = await api.get('/users');
// POST запрос
const newUser = await api.post('/users', {
name: 'John',
email: 'john@example.com'
});import { HttpClient } from 'requestify.js';
// Мок для тестирования
const mockFetch = jest.fn(async () => new Response('{"data": "test"}'));
const api = new HttpClient({
baseUrl: 'https://api.example.com',
fetch: mockFetch
});
const data = await api.get('/users');
expect(mockFetch).toHaveBeenCalled();import { HttpClient } from 'requestify.js';
import { jsonMiddleware, retryMiddleware } from 'requestify.js';
const api = new HttpClient({
baseUrl: 'https://api.example.com'
})
.registerMiddleware(jsonMiddleware)
.registerMiddleware(retryMiddleware(3));
// Автоматически парсит JSON и повторяет неудачные запросы
const users = await api.get('/users');import { jsonMiddleware, jsonFormatMiddleware, retryMiddleware } from 'requestify.js';
// Автоматическое преобразование в JSON
const api1 = new HttpClient().registerMiddleware(jsonMiddleware);
// Форматированный ответ с метаданными
const api2 = new HttpClient().registerMiddleware(jsonFormatMiddleware);
// Повторение неудачных запросов
const api3 = new HttpClient().registerMiddleware(retryMiddleware(3));import { defineMiddleware } from 'requestify.js';
const authMiddleware = defineMiddleware({
name: 'auth',
before: async config => {
config.headers = {
...config.headers,
Authorization: 'Bearer your-token'
};
return config;
}
});
const api = new HttpClient().registerMiddleware(authMiddleware);Полная документация доступна на GitHub Pages.
- 📖 Документация
- 🐛 Issues
- 💬 Discussions
MIT License - см. LICENSE файл для деталей.
Igor Koneshov
- GitHub: @ssssed
- Email: igorkoneshov@mail.ru
⭐ Если проект вам понравился, поставьте звезду на GitHub!