1.14.0 • Published 8 months ago

@aspida/node-fetch v1.14.0

Weekly downloads
404
License
MIT
Repository
github
Last release
8 months ago

@aspida/node-fetch

Getting Started

Installation

  • Using npm:

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

    $ yarn add aspida 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);
    }
  }
})();

Serialize GET parameters manually

src/index.ts

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

const fetchConfig = {
  paramsSerializer: params => qs.stringify(params),
};

const client = api(aspida(fetch, fetchConfig));
(async () => {
  const users = await client.v1.users.$get({
    // config: { paramsSerializer: (params) => qs.stringify(params) },
    query: { ids: [1, 2, 3] },
  });
  console.log(users);
  // req -> GET: /v1/users/?ids%5B0%5D=1&ids%5B1%5D=2&ids%5B2%5D=3
  // decoded ->             ids[0]=1    &ids[1]=2    &ids[2]=3
  // res -> [{ id: 1, name: "taro1" }, { id: 2, name: "taro2" }, { id: 3, name: "taro3" }]
})();

License

@aspida/node-fetch is licensed under a MIT License.

1.14.0

8 months ago

1.13.2

8 months ago

1.13.1

8 months ago

1.13.0

8 months ago

1.13.3

8 months ago

1.12.0

12 months ago

1.11.0

2 years ago

1.10.3

2 years ago

1.10.2

2 years ago

1.10.1

2 years ago

1.10.0

2 years ago

1.9.1

2 years ago

1.9.0

2 years ago

1.8.1

2 years ago

1.8.0

2 years ago

1.7.1

3 years ago

1.7.0

3 years ago

1.6.3

3 years ago

1.6.2

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.0

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.0

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago

0.9.2

3 years ago

0.9.1

3 years ago

0.9.0

4 years ago

0.8.4

4 years ago

0.8.3

4 years ago

0.8.2

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.7.2

4 years ago

0.7.1

4 years ago

0.7.0

4 years ago

0.6.4

4 years ago

0.6.3

4 years ago

0.6.2

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.3.0

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago