@aspida/node-fetch

node-fetch client for aspida

Usage no npm install needed!

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

README

@aspida/node-fetch


aspida
node-fetch client for aspida.


Getting Started

Installation

  • Using npm:

    $ npm install node-fetch @aspida/node-fetch
    $ npm install @types/node-fetch --save-dev
    
  • Using Yarn:

    $ yarn add node-fetch @aspida/node-fetch
    $ yarn add @types/node-fetch --dev
    

Make HTTP request from application

src/index.ts

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

const fetchConfig = {
  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/node-fetch is licensed under a MIT License.