1.1.10 • Published 10 months ago

@lullaby6/fetcher v1.1.10

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Fetcher

HTTP client for reusable API instances.

Installation

NPM

Install the library using NPM:

npm i @lullaby6/fetcher

Import

// CoommonJS
const fetcher = require('@lullaby6/fetcher');

// ES Modules
import fetcher from '@lullaby6/fetcher';

CDN

<script src='https://cdn.jsdelivr.net/gh/lullaby6/fetcher/fetcher.js'></script>

Download

Download and include the downloaded file in your project:

<script src="/path/to/fetcher.js"></script>

Usage

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'
    }
})

Options

OptionDefaultDescription
urlwindow.location.hrefBase URL for requests
querynullDefault path segment to append to URL
paramsnullDefault URL parameters
headersnullDefault headers
bodynullDefault body for POST/PUT requests
modenullRequest mode (e.g., 'cors', 'no-cors')
cachenullCache mode for requests
type'json'Response type
contentType'application/json'Request content type

License

MIT

1.1.10

10 months ago

1.1.9

10 months ago

1.1.8

10 months ago

1.1.6

10 months ago

1.1.5

10 months ago

1.1.4

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

1.1.1

10 months ago