
This is a collection of functions for working with fetch.
The countFetchRequestInitHeaders function counts the number of headers in a FetchRequestInit or RequestInit object.
import { countFetchRequestInitHeaders } from '@aracna/core';
const init = { headers: { a: '0', b: '1' } };
// will log 2
console.log(countFetchRequestInitHeaders(init));The deleteFetchRequestInitHeader function deletes a header from a FetchRequestInit or RequestInit object.
import {
deleteFetchRequestInitHeader,
getFetchRequestInitHeadersEntries
} from '@aracna/core';
const init = { headers: { a: '0', b: '1' } };
deleteFetchRequestInitHeader(init, 'a');
// will log [["b", "1"]]
console.log(getFetchRequestInitHeadersEntries(init));The getFetchRequestInitHeader function returns a header from a FetchRequestInit or RequestInit object.
import { getFetchRequestInitHeader } from '@aracna/core';
const init = { headers: { authorization: 'token' } };
// will log "token"
console.log(getFetchRequestInitHeader(init, 'authorization'));The getFetchRequestInitHeadersEntries function returns the headers entries of a FetchRequestInit or RequestInit object.
import { getFetchRequestInitHeadersEntries } from '@aracna/core';
const init = { headers: { a: '0', b: '1' } };
// will log [["a", "0"], ["b", "1"]]
console.log(getFetchRequestInitHeadersEntries(init));The setFetchRequestInitHeader function sets a header in a FetchRequestInit or RequestInit object.
import {
getFetchRequestInitHeader,
setFetchRequestInitHeader
} from '@aracna/core';
const init = {};
setFetchRequestInitHeader(init, 'authorization', 'token');
// will log "token"
console.log(getFetchRequestInitHeader(init, 'authorization'));The setFetchRequestInitHeaderWhenUnset function sets a header in a FetchRequestInit or RequestInit object if it is not already set.
import {
getFetchRequestInitHeader,
setFetchRequestInitHeaderWhenUnset
} from '@aracna/core';
const init = {};
setFetchRequestInitHeaderWhenUnset(init, 'authorization', 'token');
// will log "token"
console.log(getFetchRequestInitHeader(init, 'authorization'));
// will not set the header since it is already set
setFetchRequestInitHeaderWhenUnset(init, 'authorization', 'token2');
// will still log "token"
console.log(getFetchRequestInitHeader(init, 'authorization'));The hasFetchRequestInitHeader function checks if a header exists in a FetchRequestInit or RequestInit object.
import {
hasFetchRequestInitHeader,
setFetchRequestInitHeader
} from '@aracna/core';
const init = {};
setFetchRequestInitHeader(init, 'authorization', 'token');
// will log true
console.log(hasFetchRequestInitHeader(init, 'authorization'));The mergeFetchRequestInits function merges two or more FetchRequestInit or RequestInit objects.
import {
getFetchRequestInitHeadersEntries,
mergeFetchRequestInits
} from '@aracna/core';
const source = { headers: { a: '0' }, method: 'GET' };
const target = { headers: { b: '1' }, method: 'POST' };
const merge = mergeFetchRequestInits(source, target);
// will log [["a", "0"], ["b", "1"]]
console.log(getFetchRequestInitHeadersEntries(merged_init));
// will log "POST"
console.log(merged_init.method);The toNativeFetchRequestInit function converts a FetchRequestInit or RequestInit object to a native RequestInit object.
import {
getFetchRequestInitHeader,
toNativeFetchRequestInit
} from '@aracna/core';
const init = { body: { name: 'John' } };
const native = toNativeFetchRequestInit(init);
// will log "{ "name": "John" }"
console.log(native.body);
// will log "application/json"
console.log(getFetchRequestInitHeader(native, 'content-type'));The toLoggableFetchRequestInit function returns a version of a FetchRequestInit object that is easier to read in logs.
import { toLoggableFetchRequestInit } from '@aracna/core';
const init = {};
init.body = new FormData();
init.body.set('name', 'John');
// will log "{ "body": { "name": "John" } }"
console.log(toLoggableFetchRequestInit(init));The toLoggableNativeFetchRequestInit function returns a version of a RequestInit object that is easier to read in logs.
import { toLoggableNativeFetchRequestInit } from '@aracna/core';
const init = {};
init.body = new FormData();
init.body.set('name', 'John');
// will log "{ "body": { "name": "John" } }"
console.log(toLoggableNativeFetchRequestInit(init));