0.0.15 • Published 2 years ago
@dolanske/eru v0.0.15
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.
Usage
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)
const createPerson = (newPerson: Person) => people.post(newPerson, {
headers: { 'Content-type': 'application/json' }
})
.then((data) => {})
.catch((err) => {})
const removePerson = (id: number) => people.delete(id)0.0.15
2 years ago