1.1.0 • Published 7 years ago

dtux-fetch v1.1.0

Weekly downloads
-
License
ISC
Repository
-
Last release
7 years ago

dtux-fetch

A Fetch for node and Browserify, easy to use.


Features

  • support abort.
  • promise.
  • global data setting.

API

import { request, checkStatus, parseJSON, requestData, setGlobal } from 'dtux-fetch';

setGlobal({
  data: {
    _token: '222'
  },
  getOptions: {
    mode: 'cors',
    credentials: 'include',
  },
  postOptions: {
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
  }
});

request({
  url: 'api/test',
  data: {test: 1},
  beforeSend: () => {
    return requestData({
      url: 'api/csrf'
    }).then(({data}) => ({
      headers: {
        token: data.data.token
      },
      data: {
        token: data.data.token
      }
    }))
  }
});

const requestPromise = request(
  {
    url: 'api/test',
    type: 'post',
    data: {test: 2, obj: {a: 1}},
    timeout: 2000,
    beforeSend: () => {
      return requestData({
        url: 'api/csrf'
      }).then(({data}) => ({
        headers: {
          token: data.data.token
        },
        data: {
          token: data.data.token
        }
      }))
    }
  }
);

requestPromise
  .then(checkStatus)
  .then(parseJSON)
  .then(({ data }) => {
    console.log(data);
  });

setTimeout(() => {
  requestPromise.abort();
}, 1000);

Options

  • url a fully qualified uri
  • method http method (default: GET)
  • headers http headers
  1. GET method default: {mode: 'cors', credentials: 'include'}
  2. POST method default: headers: {'Content-Type': 'application/x-www-form-urlencoded'}
  • data data for requests. Must be a query String or JSON object
  • contentType sets the Content-Type of the request. Eg: application/json
  • timeout timeout for request.
  • mode 'cors' || 'same-origin' || 'no-cors' || 'navigate'
  • credentials 'include' || 'same-origin' || 'omit'
  • contentType headers Content-Type
  • beforeSend handle this function before send request
1.1.0

7 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago