axios-shortcut
TypeScript icon, indicating that this package has built-in type declarations

0.1.3 • Public • Published

Axios Shortcut version

Shortcuts for [Axios](https://github.com/axios/axios).

zero dependencies minzipped size conventional commits code style


Compare to Axios

Axios Axios Instance Axios Shortcut
- getUri([config]) -
request(config) request(config) -
get(url[, config]) get(url[, config]) GET(url[, params[, config]])
delete(url[, config]) delete(url[, config]) DELETE(url[, params[, config]])
head(url[, config]) head(url[, config]) HEAD(url[, params[, config]])
options(url[, config]) options(url[, config]) OPTIONS(url[, params[, config]])
post(url[, data[, config]]) post(url[, data[, config]]) POST(url[, data[, config]])
put(url[, data[, config]]) put(url[, data[, config]]) PUT(url[, data[, config]])
patch(url[, data[, config]]) patch(url[, data[, config]]) PATCH(url[, data[, config]])
- - DOWNLOAD(url[, fileName])

Install

NPM

npm i axios-shortcut

CDN + ESM

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
</head>

<body>
  <script type="importmap">
    {
      "imports": {
        "axios": "https://cdn.jsdelivr.net/npm/axios/dist/esm/axios.min.js",
        "axios-shortcut": "https://cdn.jsdelivr.net/npm/axios-shortcut@0.1/dist/axios-shortcut.mjs"
      }
    }
  </script>
  <script type="module">
    import AxiosShortcut from 'axios-shortcut'
    import axios from 'axios'

    const {
      GET,
      DELETE,
      HEAD,
      OPTIONS,
      POST,
      PUT,
      PATCH,
      DOWNLOAD,
    } = AxiosShortcut(axios)
  </script>
</body>

</html>

CDN + IIFE

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
</head>

<body>
  <script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/axios-shortcut@0.1"></script>
  <script>
    const {
      GET,
      DELETE,
      HEAD,
      OPTIONS,
      POST,
      PUT,
      PATCH,
      DOWNLOAD,
    } = AxiosShortcut(axios)
  </script>
</body>

</html>

Usage

Create from Axios

import AxiosShortcut from 'axios-shortcut'
import axios from 'axios'

const axiosShortcut = AxiosShortcut(axios)

Create from Axios Instance

import AxiosShortcut from 'axios-shortcut'
import request from '@/utils/request'

const axiosShortcut = AxiosShortcut(request)

Register as Global Properties in Vue

for (const k in axiosShortcut) {
  // Vue 3
  app.config.globalProperties[`$${k}`] = axiosShortcut[k]

  // Vue 2
  Object.defineProperty(Vue.prototype, `$${k}`, {
    value: axiosShortcut[k]
  })
}

Upload

Request Header: Content-Type: multipart/form-data

(url: string, dataOrParams?: any, config?: AxiosRequestConfig<any>) => Promise<AxiosResponse<any>>
  • PUT.upload
  • POST.upload
  • PATCH.upload

Download

responseType: 'blob'

Note the default value of XMLHttpRequest.responseType is 'text'

And the default value of AxiosRequestConfig.responseType is 'json'

(url: string, dataOrParams?: any, config?: AxiosRequestConfig<any>) => Promise<AxiosResponse<any>>
  • GET.download
  • POST.download
  • PATCH.download
  • OPTIONS.download

Download Static Resources

Response Header: Content-Disposition: attachment

(url: string, fileName = '') => undefined

Remote Static Resources (URLs)

DOWNLOAD('https://xxx.jpg', 'xxx.jpg')

Local Static Resources (Object URLs)

// Plain Text
const text = 'Hello World'
const objectURL = URL.createObjectURL(new Blob([text], { type: 'text/plain' }))
DOWNLOAD(objectURL, 'xxx.txt')

// JSON
const json = { hello: 'world' }
const objectURL = URL.createObjectURL(new Blob([JSON.stringify(json)], { type: 'application/json' }))
DOWNLOAD(objectURL, 'xxx.json')

Changelog

Detailed changes for each release are documented in the release notes


Readme

Keywords

Package Sidebar

Install

npm i axios-shortcut

Weekly Downloads

22

Version

0.1.3

License

MIT

Unpacked Size

21.4 kB

Total Files

8

Last publish

Collaborators

  • cloydlau