@varlet/axle 0.0.0 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,8 @@
1
- <div align="center">
1
+ <div>
2
2
  <a href="https://github.com/varletjs/axle">
3
- <img src="https://github.com/varletjs/axle/blob/main/public/logo.svg" width="200">
3
+ <img src="https://github.com/varletjs/axle/blob/main/public/logo.svg" width="400">
4
4
  </a>
5
- <h1>axle</h1>
6
- <p>A tool library based on axios to simplify the development process</p>
5
+ <h2>A tool library based on axios to simplify the development process</h2>
7
6
  </div>
8
7
 
9
8
  ### Quickstart
@@ -46,8 +45,8 @@ export interface AxleHelpers {
46
45
  getDocument: FetchHelper
47
46
  // get text
48
47
  getText: FetchHelper
49
- // get Arraybuffer, which can be used for segmented download
50
- getArraybuffer: FetchHelper
48
+ // get ArrayBuffer, which can be used for segmented download
49
+ getArrayBuffer: FetchHelper
51
50
  // get a readable stream, which can be used for browser caching
52
51
  getStream: FetchHelper
53
52
 
@@ -55,14 +54,14 @@ export interface AxleHelpers {
55
54
  headBlob: FetchHelper
56
55
  headDocument: FetchHelper
57
56
  headText: FetchHelper
58
- headArraybuffer: FetchHelper
57
+ headArrayBuffer: FetchHelper
59
58
  headStream: FetchHelper
60
59
 
61
60
  options: FetchHelper
62
61
  optionsBlob: FetchHelper
63
62
  optionsDocument: FetchHelper
64
63
  optionsText: FetchHelper
65
- optionsArraybuffer: FetchHelper
64
+ optionsArrayBuffer: FetchHelper
66
65
  optionsStream: FetchHelper
67
66
 
68
67
  delete: FetchHelper
package/es/index.d.ts ADDED
@@ -0,0 +1,53 @@
1
+ import type { AxiosInstance, AxiosRequestConfig, AxiosResponse, ResponseType } from "axios";
2
+ export declare type AxleRequestConfig = AxiosRequestConfig & {
3
+ exceptionMessage?: any;
4
+ };
5
+ export declare type FetchHelper = <T = any, R = AxiosResponse<T>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
6
+ export declare type ModifyHelper = <T = any, R = AxiosResponse<T>>(url: string, data?: any, config?: AxleRequestConfig) => Promise<R>;
7
+ export interface AxiosHelpers {
8
+ get: FetchHelper;
9
+ getBlob: FetchHelper;
10
+ getDocument: FetchHelper;
11
+ getText: FetchHelper;
12
+ getArrayBuffer: FetchHelper;
13
+ getStream: FetchHelper;
14
+ head: FetchHelper;
15
+ headBlob: FetchHelper;
16
+ headDocument: FetchHelper;
17
+ headText: FetchHelper;
18
+ headArrayBuffer: FetchHelper;
19
+ headStream: FetchHelper;
20
+ options: FetchHelper;
21
+ optionsBlob: FetchHelper;
22
+ optionsDocument: FetchHelper;
23
+ optionsText: FetchHelper;
24
+ optionsArrayBuffer: FetchHelper;
25
+ optionsStream: FetchHelper;
26
+ delete: FetchHelper;
27
+ deleteBlob: FetchHelper;
28
+ deleteDocument: FetchHelper;
29
+ deleteText: FetchHelper;
30
+ deleteArrayBuffer: FetchHelper;
31
+ deleteStream: FetchHelper;
32
+ post: ModifyHelper;
33
+ postJSON: ModifyHelper;
34
+ postMultipart: ModifyHelper;
35
+ put: ModifyHelper;
36
+ putJSON: ModifyHelper;
37
+ putMultipart: ModifyHelper;
38
+ patch: ModifyHelper;
39
+ patchJSON: ModifyHelper;
40
+ patchMultipart: ModifyHelper;
41
+ download(blob: string | Blob, filename: string): void;
42
+ setHeader(key: string, value: string): void;
43
+ removeHeader(key: string | string[]): void;
44
+ }
45
+ export declare type FetchMethods = "get" | "delete" | "options" | "head";
46
+ export declare type ModifyMethods = "post" | "put" | "patch";
47
+ export declare type AxleInstance = AxiosInstance & {
48
+ helpers: AxiosHelpers;
49
+ };
50
+ export declare function createFetchHelper(service: AxleInstance, method: FetchMethods, responseType: ResponseType): <T, R = AxiosResponse<T, any>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
51
+ export declare function createModifyHelper(service: AxleInstance, method: ModifyMethods, contentType: "application/json" | "multipart/form-data" | "application/x-www-form-urlencoded"): <T, R = AxiosResponse<T, any>>(url: string, data?: any, config?: AxleRequestConfig) => Promise<R>;
52
+ export declare function download(url: string | Blob, filename: string): void;
53
+ export declare function createAxle(config: AxiosRequestConfig): AxleInstance;
package/es/index.js ADDED
@@ -0,0 +1,84 @@
1
+ import axios from "axios";
2
+ import qs from "qs";
3
+ export function createFetchHelper(service, method, responseType) {
4
+ return function (url, params, config) {
5
+ return service[method](url, Object.assign({ params: Object.assign({ _t: Date.now() }, params), responseType }, config));
6
+ };
7
+ }
8
+ export function createModifyHelper(service, method, contentType) {
9
+ return function (url, data, config) {
10
+ if (contentType === "application/x-www-form-urlencoded") {
11
+ data = qs.stringify(data);
12
+ }
13
+ if (contentType === "multipart/form-data") {
14
+ const formData = new FormData();
15
+ Object.keys(data).forEach((key) => formData.append(key, data[key]));
16
+ data = formData;
17
+ }
18
+ return service[method](url, data, Object.assign({ headers: {
19
+ "Content-Type": contentType,
20
+ } }, config));
21
+ };
22
+ }
23
+ export function download(url, filename) {
24
+ const a = document.createElement("a");
25
+ a.download = filename;
26
+ a.style.display = "none";
27
+ a.href = typeof url === "string" ? url : URL.createObjectURL(url);
28
+ document.body.appendChild(a);
29
+ a.click();
30
+ URL.revokeObjectURL(a.href);
31
+ document.body.removeChild(a);
32
+ }
33
+ export function createAxle(config) {
34
+ const service = axios.create(config);
35
+ function setHeader(key, value) {
36
+ service.defaults.headers["common"][key] = value;
37
+ }
38
+ function removeHeader(key) {
39
+ if (typeof key === "string") {
40
+ Reflect.deleteProperty(service.defaults.headers["common"], key);
41
+ return;
42
+ }
43
+ key.forEach((k) => Reflect.deleteProperty(service.defaults.headers["common"], k));
44
+ }
45
+ service.helpers = {
46
+ get: createFetchHelper(service, "get", "json"),
47
+ getBlob: createFetchHelper(service, "get", "blob"),
48
+ getDocument: createFetchHelper(service, "get", "document"),
49
+ getArrayBuffer: createFetchHelper(service, "get", "arraybuffer"),
50
+ getText: createFetchHelper(service, "get", "text"),
51
+ getStream: createFetchHelper(service, "get", "stream"),
52
+ head: createFetchHelper(service, "head", "json"),
53
+ headBlob: createFetchHelper(service, "head", "blob"),
54
+ headDocument: createFetchHelper(service, "head", "document"),
55
+ headArrayBuffer: createFetchHelper(service, "head", "arraybuffer"),
56
+ headText: createFetchHelper(service, "head", "text"),
57
+ headStream: createFetchHelper(service, "head", "stream"),
58
+ options: createFetchHelper(service, "options", "json"),
59
+ optionsBlob: createFetchHelper(service, "options", "blob"),
60
+ optionsDocument: createFetchHelper(service, "options", "document"),
61
+ optionsArrayBuffer: createFetchHelper(service, "options", "arraybuffer"),
62
+ optionsText: createFetchHelper(service, "options", "text"),
63
+ optionsStream: createFetchHelper(service, "options", "stream"),
64
+ delete: createFetchHelper(service, "delete", "json"),
65
+ deleteBlob: createFetchHelper(service, "delete", "blob"),
66
+ deleteDocument: createFetchHelper(service, "delete", "document"),
67
+ deleteArrayBuffer: createFetchHelper(service, "delete", "arraybuffer"),
68
+ deleteText: createFetchHelper(service, "delete", "text"),
69
+ deleteStream: createFetchHelper(service, "delete", "stream"),
70
+ post: createModifyHelper(service, "post", "application/x-www-form-urlencoded"),
71
+ postJSON: createModifyHelper(service, "post", "application/json"),
72
+ postMultipart: createModifyHelper(service, "post", "multipart/form-data"),
73
+ put: createModifyHelper(service, "put", "application/x-www-form-urlencoded"),
74
+ putJSON: createModifyHelper(service, "put", "application/json"),
75
+ putMultipart: createModifyHelper(service, "put", "multipart/form-data"),
76
+ patch: createModifyHelper(service, "patch", "application/x-www-form-urlencoded"),
77
+ patchJSON: createModifyHelper(service, "patch", "application/json"),
78
+ patchMultipart: createModifyHelper(service, "patch", "multipart/form-data"),
79
+ download,
80
+ setHeader,
81
+ removeHeader,
82
+ };
83
+ return service;
84
+ }
package/lib/index.d.ts CHANGED
@@ -9,19 +9,19 @@ export interface AxiosHelpers {
9
9
  getBlob: FetchHelper;
10
10
  getDocument: FetchHelper;
11
11
  getText: FetchHelper;
12
- getArraybuffer: FetchHelper;
12
+ getArrayBuffer: FetchHelper;
13
13
  getStream: FetchHelper;
14
14
  head: FetchHelper;
15
15
  headBlob: FetchHelper;
16
16
  headDocument: FetchHelper;
17
17
  headText: FetchHelper;
18
- headArraybuffer: FetchHelper;
18
+ headArrayBuffer: FetchHelper;
19
19
  headStream: FetchHelper;
20
20
  options: FetchHelper;
21
21
  optionsBlob: FetchHelper;
22
22
  optionsDocument: FetchHelper;
23
23
  optionsText: FetchHelper;
24
- optionsArraybuffer: FetchHelper;
24
+ optionsArrayBuffer: FetchHelper;
25
25
  optionsStream: FetchHelper;
26
26
  delete: FetchHelper;
27
27
  deleteBlob: FetchHelper;
@@ -47,7 +47,7 @@ export declare type ModifyMethods = "post" | "put" | "patch";
47
47
  export declare type AxleInstance = AxiosInstance & {
48
48
  helpers: AxiosHelpers;
49
49
  };
50
- export declare function createFetchHelper(service: AxleInstance, method: FetchMethods, responseType: ResponseType): <T, R = AxiosResponse<T, any>>(url: string, params?: any, config?: AxleRequestConfig | undefined) => Promise<R>;
51
- export declare function createModifyHelper(service: AxleInstance, method: ModifyMethods, contentType: "application/json" | "multipart/form-data" | "application/x-www-form-urlencoded"): <T, R = AxiosResponse<T, any>>(url: string, data?: any, config?: AxleRequestConfig | undefined) => Promise<R>;
50
+ export declare function createFetchHelper(service: AxleInstance, method: FetchMethods, responseType: ResponseType): <T, R = AxiosResponse<T, any>>(url: string, params?: any, config?: AxleRequestConfig) => Promise<R>;
51
+ export declare function createModifyHelper(service: AxleInstance, method: ModifyMethods, contentType: "application/json" | "multipart/form-data" | "application/x-www-form-urlencoded"): <T, R = AxiosResponse<T, any>>(url: string, data?: any, config?: AxleRequestConfig) => Promise<R>;
52
52
  export declare function download(url: string | Blob, filename: string): void;
53
53
  export declare function createAxle(config: AxiosRequestConfig): AxleInstance;
package/lib/index.js CHANGED
@@ -55,19 +55,19 @@ function createAxle(config) {
55
55
  get: createFetchHelper(service, "get", "json"),
56
56
  getBlob: createFetchHelper(service, "get", "blob"),
57
57
  getDocument: createFetchHelper(service, "get", "document"),
58
- getArraybuffer: createFetchHelper(service, "get", "arraybuffer"),
58
+ getArrayBuffer: createFetchHelper(service, "get", "arraybuffer"),
59
59
  getText: createFetchHelper(service, "get", "text"),
60
60
  getStream: createFetchHelper(service, "get", "stream"),
61
61
  head: createFetchHelper(service, "head", "json"),
62
62
  headBlob: createFetchHelper(service, "head", "blob"),
63
63
  headDocument: createFetchHelper(service, "head", "document"),
64
- headArraybuffer: createFetchHelper(service, "head", "arraybuffer"),
64
+ headArrayBuffer: createFetchHelper(service, "head", "arraybuffer"),
65
65
  headText: createFetchHelper(service, "head", "text"),
66
66
  headStream: createFetchHelper(service, "head", "stream"),
67
67
  options: createFetchHelper(service, "options", "json"),
68
68
  optionsBlob: createFetchHelper(service, "options", "blob"),
69
69
  optionsDocument: createFetchHelper(service, "options", "document"),
70
- optionsArraybuffer: createFetchHelper(service, "options", "arraybuffer"),
70
+ optionsArrayBuffer: createFetchHelper(service, "options", "arraybuffer"),
71
71
  optionsText: createFetchHelper(service, "options", "text"),
72
72
  optionsStream: createFetchHelper(service, "options", "stream"),
73
73
  delete: createFetchHelper(service, "delete", "json"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@varlet/axle",
3
- "version": "0.0.0",
3
+ "version": "0.0.3",
4
4
  "description": "A useful axios helper",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -10,26 +10,17 @@
10
10
  "helpers"
11
11
  ],
12
12
  "license": "MIT",
13
- "scripts": {
14
- "preinstall": "npx only-allow pnpm",
15
- "bootstrap": "pnpm i && pnpm --filter ./playground i",
16
- "dev": "varlet-cli dev",
17
- "build": "varlet-cli build",
18
- "preview": "varlet-cli preview",
19
- "compile": "rm -rf lib es && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
20
- "release": "pnpm compile && varlet-cli release"
21
- },
22
13
  "devDependencies": {
23
14
  "@types/qs": "^6.9.7",
24
- "@varlet/cli": "^1.26.7",
25
- "@varlet/icons": "^1.26.7",
26
- "@varlet/touch-emulator": "^1.26.7",
15
+ "@varlet/cli": "latest",
16
+ "@varlet/icons": "latest",
17
+ "@varlet/touch-emulator": "latest",
27
18
  "clipboard": "^2.0.6",
28
19
  "live-server": "^1.2.1",
29
20
  "lodash-es": "^4.17.21",
30
21
  "typescript": "^4.4.4",
31
- "vue": "3.2.16",
32
- "vue-router": "4.0.12"
22
+ "vue": "^3.2.37",
23
+ "vue-router": "^4.0.16"
33
24
  },
34
25
  "homepage": "https://varlet.gitee.io/axle/",
35
26
  "repository": {
@@ -45,11 +36,22 @@
45
36
  ],
46
37
  "packageManager": "pnpm@6.24.3",
47
38
  "files": [
48
- "lib"
39
+ "lib",
40
+ "es"
49
41
  ],
50
42
  "author": "Joker <13255238145@163.com>",
51
43
  "dependencies": {
52
- "axios": "^0.26.1",
53
- "qs": "^6.10.3"
54
- }
55
- }
44
+ "axios": "^0.27.2",
45
+ "qs": "^6.11.0"
46
+ },
47
+ "scripts": {
48
+ "bootstrap:ci": "pnpm i",
49
+ "bootstrap": "pnpm i && pnpm --filter ./playground i",
50
+ "dev": "varlet-cli dev",
51
+ "build": "varlet-cli build",
52
+ "preview": "varlet-cli preview",
53
+ "compile": "rm -rf lib es && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
54
+ "release": "pnpm compile && varlet-cli release"
55
+ },
56
+ "readme": "<div>\n <a href=\"https://github.com/varletjs/axle\">\n <img src=\"https://github.com/varletjs/axle/blob/main/public/logo.svg\" width=\"400\">\n </a>\n <h2>A tool library based on axios to simplify the development process</h2>\n</div>\n\n### Quickstart\n\n```shell\n# use npm or yarn or pnpm\n\n# npm\nnpm i @varlet/axle -S\n\n# yarn\nyarn add @varlet/axle\n\n# pnpm\npnpm add @varlet/axle\n```\n\n### Function Signature\n\n```typescript\n// 'get' | 'head' | 'options' | 'delete'\nexport type FetchHelper = <T = any, R = AxiosResponse<T>>(\n url: string,\n params?: any,\n config?: AxiosRequestConfig\n) => Promise<R>\n// 'post' | 'put' | 'patch'\nexport type ModifyHelper = <T = any, R = AxiosResponse<T>>(\n url: string,\n data?: any,\n config?: AxiosRequestConfig\n) => Promise<R>\n\nexport interface AxleHelpers {\n // get data in json format\n get: FetchHelper\n // get data in blob format, which can be used to construct URL download under browser\n getBlob: FetchHelper\n // get the html document, return a dom node, can directly embed the document\n getDocument: FetchHelper\n // get text\n getText: FetchHelper\n // get ArrayBuffer, which can be used for segmented download\n getArrayBuffer: FetchHelper\n // get a readable stream, which can be used for browser caching\n getStream: FetchHelper\n\n head: FetchHelper\n headBlob: FetchHelper\n headDocument: FetchHelper\n headText: FetchHelper\n headArrayBuffer: FetchHelper\n headStream: FetchHelper\n\n options: FetchHelper\n optionsBlob: FetchHelper\n optionsDocument: FetchHelper\n optionsText: FetchHelper\n optionsArrayBuffer: FetchHelper\n optionsStream: FetchHelper\n\n delete: FetchHelper\n deleteBlob: FetchHelper\n deleteDocument: FetchHelper\n deleteText: FetchHelper\n deleteArrayBuffer: FetchHelper\n deleteStream: FetchHelper\n\n // submit application/x-www-form-urlencoded encoded data\n post: ModifyHelper\n // submit application/json encoded data\n postJSON: ModifyHelper\n // submit multipart/form-data encoded data\n postMultipart: ModifyHelper\n\n put: ModifyHelper\n putJSON: ModifyHelper\n putMultipart: ModifyHelper\n\n patch: ModifyHelper\n patchJSON: ModifyHelper\n patchMultipart: ModifyHelper\n\n // browser download file\n download(blob: string | Blob, filename: string): void\n\n // set global header\n setHeader(key: string, value: string): void\n // remove global header\n removeHeader(key: string | string[]): void\n}\n```\n\n### Normalize Api Arguments\n\n```js\n// axios\nimport { createAxios } from 'axios'\n\nconst axios = createAxios({})\n\nfunction getUser() {\n return axios.get('/user', {\n params: {\n id: 1,\n },\n })\n}\n\nfunction uploadFile() {\n const formData = new FormData()\n formData.append('name', 'axios')\n formData.append('file', new File())\n \n return axios.post('/user', formData, {\n headers: {\n 'Ccontent-Type': 'multipart/form-data',\n },\n })\n}\n```\n\n```js\n// axle\nimport { createAxle } from '@varlet/axle'\n\n// create axle instance , axle has the same abilities as axios\nconst axle = createAxle(/** @see http://www.axios-js.com/zh-cn/docs/#axios-create-config **/)\n\n// Some helper functions of axle\nconst axleHelpers = axle.helpers\n\nfunction getUser() {\n return axleHelpers.get('/user', { id: 1 })\n}\n\nfunction addUser() {\n return axleHelpers.postMultipart('/user', { name: 'axle', file: new File() })\n}\n```\n"
57
+ }