1.1.10 • Published 9 months ago

@lullaby6/fetcher v1.1.10

Weekly downloads
-
License
MIT
Repository
github
Last release
9 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

9 months ago

1.1.9

9 months ago

1.1.8

9 months ago

1.1.6

9 months ago

1.1.5

9 months ago

1.1.4

9 months ago

1.1.3

9 months ago

1.1.2

9 months ago

1.1.1

9 months ago