tiny-rest

1.0.1 • Public • Published

Tiny Rest

An absolutely tiny [9 LOC] REST API client, with no functionality omitted!

Fully typed for TS using JSDoc, with no build process required.

Install:

npm i tiny-rest

Usage:

import tinyRest from 'tiny-rest'

const githubUsers = tinyRest('https://api.github.com/users/') // trailing '/' is important!

// fetches https://api.github.com/users/ThaUnknown/repos?direction=desc&per_page=100&sort=updated
const reposResponse = await githubUsers('ThaUnknown/repos', { sort: 'updated', direction: 'desc', per_page: 100 })

const userRepos = await reposResponse.json()

With extra options:

import tinyRest from 'tiny-rest'

// fetch options passed every time restEndpoint makes a query
const restEndpoint = tinyRest('https://api.website.com/rest/', { mode: 'cors', headers: { 'Content-Type': 'application/json', Authorization: 'Bearer *token*' } })

const restResponse = await restEndpoint('slug', { sort: 'updated' })

const restText = await restResponse.text()

Use a custom generator to create duplicate keys:

function * yieldDuplicateKeys(i = 10) {
  while (--i) yield ['key', 'value']
}

// searchParams: ?key=value&key=value&key=value&key=value&key=value&key=value&key=value&key=value&key=value
const restResponse = await restEndpoint('slug', yieldDuplicateKeys(10))

About:

This library uses W3C Web API's built into all modern environments: fetch and URL, if you're running an older environment, simply polyfill those globally.

Search Parameters are always sorted to improve request caching.

Package Sidebar

Install

npm i tiny-rest

Weekly Downloads

0

Version

1.0.1

License

MIT

Unpacked Size

3.03 kB

Total Files

3

Last publish

Collaborators

  • thaunknown