@dolanske/eru
v0.0.21
Published
Simple & opinionated wrapper around the Fetch API
Downloads
40
Maintainers
Readme
eru 得る
Japanese for get (that's what google translate told me at least)
Super simple wrapper around the Fetch API. Create a simple API router, with full type safety.
npm i @dolanske/eruUsage
First create an API router by providing it with the base API path and options.
import { eru } from './eru'
import { apiToken } from './config'
const router = eru('api.myproject.dev', {
headers: {
Authorization: `Bearer ${apiToken}`
}
})Now you can create as many routes as you wish, using the route function.
const people = router.route('/people')
const tags = router.route('/people/tags')Each route exposes standard request methods and a cancel method, which would stop all pending calls within the route.
people.get()
people.post()
people.put()
people.patch()
people.delete()
people.cancel()Examples
Create an API route for /people. Each request method is wrapped in an arrow function so you can provide types for parameters.
interface Person { id: number, name: string }
const people = eru('https://swapi.dev/api').route('/people')
// returns Promise<Person[]>
const getPeople = () => people.get<Person[]>()
// Adding an ID to the .get() call will append a `/${id}` to the route path
// returns Promise<Person>
const getPerson = (id: number) => people.get<Person>(id)
function createPerson(newPerson: Person) {
return people.post(newPerson, {
headers: { 'Content-type': 'application/json' }
})
.then((data) => {})
.catch((err) => {})
}
const removePerson = (id: number) => people.delete(id)