This is a lightweight HTTP client, with basic support for request and response interceptors.
By default, it uses JSON serialization and deserialization for both request and response bodies.
npm install yesttp
yarn add yesttp
import { Yesttp } from 'yesttp';
const response = await new Yesttp().post('https://api.backend.com/users', {
body: {
name: 'Bob',
age: 42,
},
});
// Assuming the backend JSON response contains an `id` field
const userId = response.body.id;
import { Yesttp } from 'yesttp';
const yesttp = new Yesttp();
The class can also be instantiated with a configuration object:
const yesttp = new Yesttp({
baseUrl: 'https://api.backend.com',
requestInterceptor: (request) => Promise.resolve(request),
responseErrorIntercepter: (request, response) => Promise.reject({ request, response }),
responseSuccessInterceptor: (request, response) => Promise.resolve(response),
});
yesttp.get('/users');
yesttp.post('/users', {
// Request options
});
Here's an overview of the available request options:
export type GetOptions = {
searchParams?: Record<string, string | undefined>;
headers?: Record<string, string | undefined>;
};
export type RequestOptions = {
searchParams?: Record<string, string | undefined>;
headers?: Record<string, string | undefined>;
body?: any;
bodyRaw?: any;
};
const response = await yesttp.get<User>('/users/123');
Here, the response is an object with the following properties:
type Response<T> = {
status: number;
headers: Record<string, string>;
body: T;
bodyRaw: string;
};