extra-request

Utilities for Request

Usage no npm install needed!

<script type="module">
  import extraRequest from 'https://cdn.skypack.dev/extra-request';
</script>

README

extra-request

Utilities for Request.

Install

npm install --save extra-request
# or
yarn add extra-request

Usage

import { post } from 'extra-request'
import { url, json } from 'extra-request/lib/es2018/transformers'

const req = post(
  url('http://example.com')
, json({ hello: 'world' })
)
const res = await fetch(req)

API

interface IHTTPOptions {
  url?: URL
  headers?: Headers
  payload?: string | FormData
  signal?: AbortSignal
}

type IHTTPOptionsTransformer = (options: IHTTPOptions) => HTTPOptions

get

function get(...transformers: Array<IHTTPOptionsTransformer | Falsy>): Request

head

function head(...transformers: Array<IHTTPOptionsTransformer | Falsy>: Request

post

function post(...transformers: Array<IHTTPOptionsTransformer | Falsy>): Request

put

function put(...transformers: Array<IHTTPOptionsTransformer | Falsy>): Request

patch

function patch(...transformers: Array<IHTTPOptionsTransformer | Falsy>): Request

del

function del(...transformers: Array<IHTTPOptionsTrransformer | Falsy>): Request

Transformers

url

function url(...urls: [string, ...string[]]): IHTTPOptionsTransformer

text

function text(payload: string): IHTTPOptionsTransformer

json

function json(payload: Json): IHTTPOptionsTransformer

csv

function csv<T extends object>(payload: T[]): IHTTPOptionsTransformer

signal

function signal(signal: AbortSignal): IHTTPOptionsTransformer

header

function header(name: string, value: string): IHTTPOptionsTransformer

appendHeader

function appendHeader(name: string, value: string): IHTTPOptionsTransformer

headers

function headers(headers: { [name: string]: string }): IHTTPOptionsTransformer

host

function host(host: string): IHTTPOptionsTransformer

port

function port(port: number): IHTTPOptionsTransformer

pathname

function pathname(pathname: string): IHTTPOptionsTransformer

search

function search(search: string): IHTTPOptionsTransformer

searchParam

function searchParam(
  name: string
, value: string | number
): IHTTPOptionsTransformer

appendSearchParam

function appendSearchParam(
  name: string
, value: string | number
): IHTTPOptionsTransformer

searchParams

function searchParams(
  searchParams: { [name: string]: string | number }
): IHTTPOptionsTransformer

formDataField

function formDataField(
  name: string
, value: string | string[] | Blob
): IHTTPOptionsTransformer

basicAuth

function basicAuth(username: string, password: string): IHTTPOptionsTransformer

bearerAuth

function bearerAuth(token: string): IHTTPOptionsTransformer

keepalive

function keepalive(val: boolean = true): IHTTPOptionsTransformer