tubbo / reqt

Ajax library for modern JS applications using the Fetch API

Home Page:http://tubbo.github.io/reqt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

reqt

An Ajax library for modern JS applications, using the Fetch API.

Build Status

Features

  • Uses the WHATWG Fetch polyfill to ensure native compatibility in future browsers.
  • Lazily makes requests until data is needed
  • Most methods are chainable for composability
  • Serializes all objects to JSON
  • Encapsulates responses within a Promise, just like fetch()

Installation

Install with your favorite package manager:

npm install reqt

...or...

yarn add reqt

You can also install from source with the following steps:

git clone https://github.com/tubbo/reqt.git
cd reqt
yarn install
yarn build

Usage

Reqt initiates all HTTP requests using the then() or done() methods to indicate we want to fulfill the promise. Read further to find out how to make each kind of HTTP request with Reqt:

Finding Resources

Import the find() function to fetch JSON data from your API:

import { find } from 'reqt';

find('users').byID('test').done();

Creating resources

You can also use the create() function to create new data from existing actions:

import { create } from 'reqt';

let params = {
  name: 'test',
  password: 'password'
};

create('users').with(params).done();

Updating found resources

After finding a resource, it's possible to mass-assign attributes, update single attributes, or flat-out replace an entire resource using the reqt DSL.

To update a single or collection of attributes on a single resource (using the PATCH method):

import { update } from 'reqt';

update('users').byID(1).with({ password: 'newpassword' }).done();

You can also replace entire resources with the PUT method and the replace action in Reqt:

import { replace } from 'reqt';

let params = {
  id: 1,
  username: 'test',
  password: 'newpassword'
};

replace('users').byID(1).with(params).done();

Destroying Resources

After finding a resource, you may want to issue a DELETE request. To do this, run the following:

import { destroy } from 'reqt';

destroy('users').byID(1).done();

How It Works

Reqt is a chainable HTTP request builder, meaning most of its methods just return the initial Store object that was instantiated using find() or create(). Data is "lazily" loaded, which is achieved through the use of Promises. Since fetch() already returns promises, developers using Reqt are working with an expected API.

Development

Contributions are encouraged using GitHub Pull Requests. All contributions must pass the test suite and are subject to the code of conduct. We also encourage contributors to add to the documentation if they change the API.

To run the test suite:

yarn test

To build documentation locally:

yarn docs

About

Ajax library for modern JS applications using the Fetch API

http://tubbo.github.io/reqt


Languages

Language:JavaScript 100.0%