logo

Fetch

This is a collection of functions for working with fetch.

Count a request headers

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));

Delete a request header

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));

Get a request header

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'));

Get a request headers entries

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));

Set a request header

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'));

Set a request header when unset

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'));

Check if a request header exists

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'));

Merge request inits

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);

Convert a request to a native request

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'));

Make a request log friendly

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));

Make a native request log friendly

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));