Skip to content
This repository was archived by the owner on Mar 30, 2022. It is now read-only.
/ fetch-node Public archive

Thin wrapper over `node-fetch`

License

Notifications You must be signed in to change notification settings

asd-xiv/fetch-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6db99b5 · Oct 27, 2020

History

12 Commits
May 20, 2020
Oct 27, 2020
May 20, 2020
May 15, 2020
Oct 27, 2020
May 20, 2020
May 20, 2020
May 15, 2020
Oct 27, 2020
Apr 9, 2020
Oct 27, 2020
Oct 27, 2020
Oct 27, 2020

Repository files navigation

fetch-node

Thin wrapper over node-fetch. Sister libray of @asd14/fetch-browser.

Install

npm i @asd14/fetch-node

Initialize

import { set } from "@asd14/fetch-node"

set({
  // Throws if not set and using relative paths
  baseURL: "http://localhost",
})

Default headers

import { set } from "@asd14/fetch-node"

set({
  // Persistent headers
  headers: {
    // Library defaults
    "accept": "application/json",
    "content-type": "application/json",

    // Set JWT for authorized requests
    authorization: "signed-payload-with-base64-over",
  },
})

Query string parameters

There is no built-in way to handle query params but you can set a custom transform function.

import { set } from "@asd14/fetch-node"
import { stringify } from "qs"

set({
  // Throws if query params passed and no stringify function defined
  queryStringifyFn: source =>
    stringify(source, {
      allowDots: true,
      encode: false,
      arrayFormat: "brackets",
      strictNullHandling: true,
    })
})

GET

import { GET } from "@asd14/fetch-node"

const myIP = await GET("https://api.ipify.org", {
  query: {
    format: "json"
  }
})
// => {"ip":"213.127.80.141"}

PATCH

POST

DELETE

MULTIPART

Changelog

See the releases section for details.