HTTP client for reusable API instances.
Install the library using NPM:
npm i @lullaby6/fetcher
// CoommonJS
const fetcher = require('@lullaby6/fetcher');
// ES Modules
import fetcher from '@lullaby6/fetcher';
<script src='https://cdn.jsdelivr.net/gh/lullaby6/fetcher/fetcher.js'></script>
Download and include the downloaded file in your project:
<script src="/path/to/fetcher.js"></script>
const todosApi = fetcher({
url: 'https://api.example.com/todos',
type: 'json'
})
// Get all todos
const todos = await todosApi.get()
// Get single todo by ID
const todo = await todosApi.get({
query: '123' // GET /todos/123
})
// Create todo
const newTodo = await todosApi.post({
body: {
title: 'New todo',
completed: false
}
})
// Update todo by ID
const updatedTodo = await todosApi.put({
query: '123', // PUT /todos/123
body: {
completed: true
}
})
// Delete todo by ID
const deleted = await todosApi.delete({
query: '123' // DELETE /todos/123
})
// Using URL parameters
const filteredTodos = await todosApi.get({
params: {
completed: true,
limit: 10
}
// GET /todos?completed=true&limit=10
})
// Using custom headers
const todoWithAuth = await todosApi.get({
headers: {
'Authorization': 'Bearer token'
}
})
Option | Default | Description |
---|---|---|
url |
window.location.href |
Base URL for requests |
query |
null |
Default path segment to append to URL |
params |
null |
Default URL parameters |
headers |
null |
Default headers |
body |
null |
Default body for POST/PUT requests |
mode |
null |
Request mode (e.g., 'cors', 'no-cors') |
cache |
null |
Cache mode for requests |
type |
'json' |
Response type |
contentType |
'application/json' |
Request content type |
MIT