ajax-maker

ajax request library base on axios

Usage no npm install needed!

<script type="module">
  import ajaxMaker from 'https://cdn.skypack.dev/ajax-maker';
</script>

README

Ajax Maker

NPM downloads npm version install size license

API

  import Request from 'ajax-maker';

  type CodeMap = {
    suc_code?: string | number | boolean;
    err_code?: string | number;
    login_code?: string | number;
  };

  type DefaultCallbacks = (res: ResObj) => any;

  interface Config {
    codeMap?: CodeMap;
    codeField?: string;
    debug?: boolean;
    logLevel?: "error" | "warn" | "detail" | "info" | "silent";
    defaultCallbacks?: {
      success?: DefaultCallbacks;
      fail?: DefaultCallbacks;
      error?: DefaultCallbacks;
      login?: DefaultCallbacks;
    };
  }

  const config: Config = {
    codeMap: {
      suc_code: 200,
      err_code: -1,
      login_code: '40100'
    },
    codeField: 'code',
  }

  // initialize instance
  // axios is AxiosStatic
  const { request, setting, axios } = new Request(config)

  // method 1
  request(
    {
      url: `https://api.com/getMessage`,
      method: 'get'
    }
  )
  .then(res => console.log(res))
  .catch(err => console.error(err))

  // method 2
  request(
    {
      baseUrl: `https://api.com/getMessage`,
      method: 'get',
      success: res => console.log(res),
      login(res => console.log(res)),
      fail: res => console.log(res),
      error: err => console.error(err)
    }
  )

  // method 3
  request(
    {
      baseUrl: `https://api.com/getMessage`,
      method: 'get'
    }
  )
  .success(res => console.log(res))
  .login(res => console.log(res))
  .fail(res => console.log(res))
  .error(err => console.error(err))


  // dynamic setting
  setting({
    codeMap: {
      suc_code: 500;
    },
    codeField: 'ret'
  })

  // AxiosStatic
  const myInterceptor = axios.interceptors.request.use(function () {/*...*/});

Note: If the codeField doesn't existence, you also can get result in then method.

  const config = {
    codeMap: {
      suc_code: 200,
      err_code: -1,
      login_code: '40100'
    },
    codeField: 'non-existent-code'
  }

  const { request } = new Request(config);

  request(
    {
      url: `https://api.com/getMessage`,
      method: 'get'
    }
  )
  .then(res => console.log('get result in then', res))