Giter VIP home page Giter VIP logo

fetch-api-wrapper's Introduction

Fetch api wrapper

NPM version

A fully typed lightweight wrapper with more powerful and flexible features of fetch api

Roadmap:

  • Fully tested with Vitest
  • Create documentation with Vitepress
  • Create offical release
  • Create automatic deploy new release on push tag

Contributions:

๐Ÿ‘๐ŸŽ‰ First off, thanks for taking the time to contribute! ๐ŸŽ‰๐Ÿ‘

How Can I Contribute?

Pull Requests

The process described here has several goals:

  • Maintain Fetch-api-wrapper's quality
  • Fix problems that are important to users
  • Enable a sustainable system for Fetch-api-wrapper's maintainers to review contributions

You can create PR as your wish to fix bug, and create features

How to use It ?

โœ… The features of Fetch api wrapper can be used without concern. They are tested and already used in some projects

Install package

npm i @malolebrin/fetch-api-wrapper

// or

yarn add @malolebrin/fetch-api-wrapper

// or

pnpm i @malolebrin/fetch-api-wrapper

Concepts and usage

Fetch api wrapper can be used in any javascript or typescript project (vanilla, react, vue, etc...)

This package was built to use the fetch api in a very simple way with a minimal configuration.

Class or Hook

The package was built with two possible possibilities for the user. You can use FetchApiWrapper class

import { FetchWrapper } from '@malolebrin/fetch-api-wrapper'

const api = new FetchWrapper({
  baseUrl: '<your url>',
  token: '<your token>',
  headers: '<your headers>',
})

Or useFetchWrapper hook.

import { useFetchWrapper } from '@malolebrin/fetch-api-wrapper'

const {
  deleteApi,
  postApi,
  patchApi,
  putApi,
  getApi,
  isSuccess,
  submissionErrors,
  setIsSubmitting,
} = useFetchWrapper({
  baseUrl: '<your url>',
  token: '<your token>',
  headers: '<your headers>',
})

It depends on your preference. Look at the documentation to understand how to use these two utilities

Create the api instance with Class

import { FetchWrapper } from '@malolebrin/fetch-api-wrapper'

const api = new FetchWrapper({
  baseUrl: '<your url>',
  token: '<your token>',
  headers: '<your headers>',
})

You can now use the api constant with headers and tokens directly associated with it. ๐Ÿš€

Fetch data

const { data, success, status, statusText } = await api.get<TSInterface>('<my path>')

Post data

const { data, success, status, statusText } = await api.post<TSInterface>('<my path>', body)

Put data

const { data, success, status, statusText } = await api.put<TSInterface>('<my path>/:id', body)

Patch data

const { data, success, status, statusText } = await api.patch<TSInterface>('<my path>/:id', body)

Delete data

const { data, success, status, statusText } = await api.delete<TSInterface>('<my path>/:id')

Create the api instance with Hook

import { useFetchWrapper } from '@malolebrin/fetch-api-wrapper'

const {
  deleteApi,
  postApi,
  patchApi,
  putApi,
  getApi,
  isSuccess,
  submissionErrors,
  setIsSubmitting,
} = useFetchWrapper({
  baseUrl: '<your url>',
  token: '<your token>',
  headers: '<your headers>',
})

You can now use the api constant with headers and tokens directly associated with it. ๐Ÿš€

Fetch data

const { data, success, status, statusText } = await getApi<TSInterface>('<my path>')

Post data

const { data, success, status, statusText } = await postApi<TSInterface>('<my path>', body)

Put data

const { data, success, status, statusText } = await putApi<TSInterface>('<my path>/:id', body)

Patch data

const { data, success, status, statusText } = await patchApi<TSInterface>('<my path>/:id', body)

Delete data

const { data, success, status, statusText } = await deleteApi<TSInterface>('<my path>/:id')

License

MIT License ยฉ 2022 Malo Lebrin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.