Skip to content

A package that implements common http requests using fetch, allowing for typed responses with TypeScript.

License

Notifications You must be signed in to change notification settings

andersontr15/tra-typed-fetch

Repository files navigation

tra-typed-fetch

Table of Contents

About

A package that implements common http requests using fetch, allowing for typed responses with TypeScript.

Installing

npm install tra-typed-fetch

yarn add tra-typed-fetch

Usage

import { createHttpClient, get } from '@tra/typed-fetch';

interface Product {
  name: string;
  id: number;
}

type Products = Product[];

const response = await get<Products>({ url: '/products' });

// Where data will be the typed value bound to the function in the Response
const { data, headers, status } = response;

/* 
Optional exported method to preset headers and baseUrl on each request
Note: currently only supports 1 http client. Existing calls to this function will return cached http client if exists.
*/
interface IRequestConfiguration {
  baseUrl?: string;
  defaultHeaders?: Request['headers'];
}

const { baseConfiguration, get, destroy, patch, post, put } = createHttpClient({
  baseUrl: 'localhost:3000/api/v1/',
  defaultHeaders: new Headers({ 'content-type': 'application/json' }),
});

About

A package that implements common http requests using fetch, allowing for typed responses with TypeScript.

Topics

Resources

License

Stars

Watchers

Forks

Packages