0.6.0 • Published 2 years ago

@tim-code/json-fetch v0.6.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

json-fetch

npm install @tim-code/json-fetch

A zero-dependency fetch wrapper for HTTP/HTTPS requests that should return well-formed JSON

Philosophy

import * as json from "@tim-code/json-fetch"
json.get(url, { queryParamKey: queryParamValue }, fetchOptions)
json.post(url, { postBodyKey: postBodyValue }, fetchOptions)
json.request(url, { ...fetchOptions, query: { a: "b" }, body: { c: "d" } })
// the following cause two requests each (i.e. `${url}?a=b` and `${url}?c=d`):
json.request(url, { ...fetchOptions, query: [{ a: "b" }, { c: "d" }] })
json.request(url, { ...fetchOptions, body: [{ a: "b" }, { c: "d" }] })

The functions exported will not throw errors on "abnormal" responses. Instead, abnormal responses are logged using console.error and an empty object {} is returned.

Abnormal responses are either:

  1. responses that do not have a successful status (i.e not in the range 200-299) or

  2. cannot be parsed as JSON (specifically JSON.parse threw an error).

Additionally, logged errors will include a portion of the response to help with debugging. See below on how to override this.

Options

In addition to the normal fetch options, the following are also optional:

fetch: a callback to be used instead of a global fetch; it is usually necessary to pass this in Node environments if a global.fetch is not set

onError: a callback that completely overrides error behavior; its return value will be passed back instead of an empty object assuming it didn't throw an error

raw: if set, does not attempt to parse JSON; will pass back a string instead of of JSON

query: query parameters

body: post body; if present, will cause a POST instead of a GET request to be made (and Content-Type header set)

0.6.0

2 years ago

0.5.0

2 years ago

0.5.1

2 years ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.3

2 years ago

0.4.1

2 years ago

0.3.6

3 years ago

0.4.0

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago