Skip to content

🚀 Requestify.js — это минималистичный и типобезопасный HTTP-клиент с гибкой системой middleware, созданный для JavaScript и TypeScript-проектов. Он предоставляет удобный способ перехватывать и модифицировать запросы и ответы с помощью асинхронных middleware.

Notifications You must be signed in to change notification settings

ssssed/requestify.js

Repository files navigation

🚀 Requestify.js

npm version License: MIT TypeScript

Лёгкий и расширяемый HTTP-клиент с поддержкой middleware для JavaScript и TypeScript проектов.

✨ Особенности

  • 🔧 Гибкая система middleware - перехватывайте и модифицируйте запросы и ответы
  • 🛡️ Полная типизация TypeScript - автодополнение и проверка типов
  • 🚀 Современный API - основан на Fetch API
  • 📦 Минимальный размер - без лишних зависимостей
  • 🎯 Простота использования - интуитивный API

📦 Установка

npm install requestify.js

🚀 Быстрый старт

Базовое использование

import { 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'
});

С кастомным fetch для тестирования

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();

С middleware

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');

🔧 Middleware

Стандартные middleware

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));

Создание собственного middleware

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.

🤝 Поддержка

📄 Лицензия

MIT License - см. LICENSE файл для деталей.

👨‍💻 Автор

Igor Koneshov


⭐ Если проект вам понравился, поставьте звезду на GitHub!

About

🚀 Requestify.js — это минималистичный и типобезопасный HTTP-клиент с гибкой системой middleware, созданный для JavaScript и TypeScript-проектов. Он предоставляет удобный способ перехватывать и модифицировать запросы и ответы с помощью асинхронных middleware.

Resources

Stars

Watchers

Forks