1.0.0-alpha.3 • Published 1 year ago

yesttp v1.0.0-alpha.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Yesttp: Lightweight HTTP Client

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.

Installation

npm install yesttp

yarn add yesttp

Quick Example

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;

Creating an instance

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

Instance Request API

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

Instance Response API

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;
};
1.0.0-alpha.3

1 year ago

1.0.0-alpha.2

1 year ago

1.0.0-alpha.1

1 year ago