Skip to content

Jetsly/unaxios

Repository files navigation

npm gzip size downloads travis

unaxios

a tiny library contain basic functions of axios

Table of Contents

Installation

For use with node and npm:

npm install --save unaxios

Then with a module bundler like rollup or webpack, use as you would anything else:

// using ES6 modules
import unaxios from 'unaxios';

// using CommonJS modules
var unaxios = require('unaxios');

The UMD build is also available on unpkg:

<script src="https://unpkg.com/unaxios/dist/unaxios.umd.js"></script>

You can find the library on window.unaxios.

Usage

import http, { get, post } from 'unaxios';

// make request
http(config).then(function(response) {
  console.log(response.data);
  console.log(response.status);
  console.log(response.statusText);
  console.log(response.headers);
  console.log(response.config);
});

get(url[, params[, config]])
post(url[, data[, config]])

request config

{
  // `url` is the server URL that will be used for the request
  url:'/url'

  // `method` is the request method to be used when making the request
  method: 'get', // default

  // `headers` are custom headers to be sent
  headers: {'X-Requested-With': 'XMLHttpRequest'},

  // `params` are the URL parameters to be sent with the request
  // Must be a plain object
  params: {
    firstName: 'ddot'
  },

  // `data` is the data to be sent as the request body
  // Only applicable for request methods 'PUT', 'POST', and 'PATCH'
  data: {
    firstName: 'ddot'
  },

  // contentType headers to be sent
  contentType: '' ,// when post method default application/json

   // `timeout` specifies the number of milliseconds before the request times out.
  // If the request takes longer than `timeout`, the request will be aborted.
  timeout: 0, // default is Global defaults.timeout

  // `withCredentials` indicates whether or not cross-site Access-Control requests
  // should be made using credentials
  withCredentials: false, // default
}

response schema

{
  // `data` is the response that was provided by the server
  data: {},

  // `status` is the HTTP status code from the server response
  status: 200,

  // `statusText` is the HTTP status message from the server response
  statusText: 'OK',

  // `headers` the headers that the server responded with
  // All header names are lower cased
  headers: {},

  // `config` is the config that was provided to `axios` for the request
  config: {},
}

Config Defaults

You can specify config defaults that will be applied to every request.

Global unaxios defaults

import { defaults } from 'unaxios';
defaults.baseURL = 'https://api.example.com';
defaults.timeout = Infinity;
defaults.headers = {};

Interceptors

You can intercept requests or responses before they are handled by then or catch.

import { interceptors } from 'unaxios';
// Add a request interceptor
interceptors.request.use(function (config) {
    // Do something before request is sent
    return config;
  }, function (error) {
    // Do something with request error
    return Promise.reject(error);
  });

// Add a response interceptor
interceptors.response.use(function (response) {
    // Do something with response data
    return response;
  }, function (error) {
    // Do something with response error
    return Promise.reject(error);
  });

If you may need to remove an interceptor later you can.

import { interceptors } from 'unaxios';
const myInterceptor = interceptors.request.use(function () {/*...*/});
myInterceptor.dispose()

License

MIT License