@aspida/fetch

fetch client for aspida

Usage no npm install needed!

<script type="module">
  import aspidaFetch from 'https://cdn.skypack.dev/@aspida/fetch';
</script>

README

@aspida/fetch


aspida
fetch client for aspida.


Getting Started

Installation

  • Using npm:

    $ npm install @aspida/fetch
    
  • Using Yarn:

    $ yarn add @aspida/fetch
    

Make HTTP request from application

src/index.ts

import aspida, { HTTPError } from "@aspida/fetch"
import api from "../api/$api"

const fetchConfig = {
  credentials: "include",
  baseURL: "https://example.com/api",
  throwHttpErrors: true // throw an error on 4xx/5xx, default is false
}

const client = api(aspida(fetch, fetchConfig))
;(async () => {
  const userId = 0
  const limit = 10

  await client.v1.users.post({ name: "mario" })

  const res = await client.v1.users.get({ query: { limit } })
  console.log(res)
  // req -> GET: https://example.com/api/v1/users/?limit=10
  // res -> { status: 200, data: [{ id: 0, name: "mario" }], headers: {...} }

  try {
    const user = await client.v1.users._userId(userId).$get()
    console.log(user)
    // req -> GET: https://example.com/api/v1/users/0
    // res -> { id: 0, name: "mario" }
  } catch (e) {
    if (e instanceof HTTPError) {
      console.log(e.response instanceof Response) // true
    } else {
      console.log(e.message)
    }
  }
})()

License

@aspida/fetch is licensed under a MIT License.