@varlet/axle 0.0.2 → 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 +4 -4
- package/es/index.d.ts +53 -0
- package/es/index.js +84 -0
- package/lib/index.d.ts +5 -5
- package/lib/index.js +3 -3
- package/package.json +11 -10
package/README.md
CHANGED
|
@@ -45,8 +45,8 @@ export interface AxleHelpers {
|
|
|
45
45
|
getDocument: FetchHelper
|
|
46
46
|
// get text
|
|
47
47
|
getText: FetchHelper
|
|
48
|
-
// get
|
|
49
|
-
|
|
48
|
+
// get ArrayBuffer, which can be used for segmented download
|
|
49
|
+
getArrayBuffer: FetchHelper
|
|
50
50
|
// get a readable stream, which can be used for browser caching
|
|
51
51
|
getStream: FetchHelper
|
|
52
52
|
|
|
@@ -54,14 +54,14 @@ export interface AxleHelpers {
|
|
|
54
54
|
headBlob: FetchHelper
|
|
55
55
|
headDocument: FetchHelper
|
|
56
56
|
headText: FetchHelper
|
|
57
|
-
|
|
57
|
+
headArrayBuffer: FetchHelper
|
|
58
58
|
headStream: FetchHelper
|
|
59
59
|
|
|
60
60
|
options: FetchHelper
|
|
61
61
|
optionsBlob: FetchHelper
|
|
62
62
|
optionsDocument: FetchHelper
|
|
63
63
|
optionsText: FetchHelper
|
|
64
|
-
|
|
64
|
+
optionsArrayBuffer: FetchHelper
|
|
65
65
|
optionsStream: FetchHelper
|
|
66
66
|
|
|
67
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
|
-
|
|
12
|
+
getArrayBuffer: FetchHelper;
|
|
13
13
|
getStream: FetchHelper;
|
|
14
14
|
head: FetchHelper;
|
|
15
15
|
headBlob: FetchHelper;
|
|
16
16
|
headDocument: FetchHelper;
|
|
17
17
|
headText: FetchHelper;
|
|
18
|
-
|
|
18
|
+
headArrayBuffer: FetchHelper;
|
|
19
19
|
headStream: FetchHelper;
|
|
20
20
|
options: FetchHelper;
|
|
21
21
|
optionsBlob: FetchHelper;
|
|
22
22
|
optionsDocument: FetchHelper;
|
|
23
23
|
optionsText: FetchHelper;
|
|
24
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "A useful axios helper",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"devDependencies": {
|
|
14
14
|
"@types/qs": "^6.9.7",
|
|
15
|
-
"@varlet/cli": "
|
|
16
|
-
"@varlet/icons": "
|
|
17
|
-
"@varlet/touch-emulator": "
|
|
15
|
+
"@varlet/cli": "latest",
|
|
16
|
+
"@varlet/icons": "latest",
|
|
17
|
+
"@varlet/touch-emulator": "latest",
|
|
18
18
|
"clipboard": "^2.0.6",
|
|
19
19
|
"live-server": "^1.2.1",
|
|
20
20
|
"lodash-es": "^4.17.21",
|
|
21
21
|
"typescript": "^4.4.4",
|
|
22
|
-
"vue": "3.2.
|
|
23
|
-
"vue-router": "4.0.
|
|
22
|
+
"vue": "^3.2.37",
|
|
23
|
+
"vue-router": "^4.0.16"
|
|
24
24
|
},
|
|
25
25
|
"homepage": "https://varlet.gitee.io/axle/",
|
|
26
26
|
"repository": {
|
|
@@ -36,12 +36,13 @@
|
|
|
36
36
|
],
|
|
37
37
|
"packageManager": "pnpm@6.24.3",
|
|
38
38
|
"files": [
|
|
39
|
-
"lib"
|
|
39
|
+
"lib",
|
|
40
|
+
"es"
|
|
40
41
|
],
|
|
41
42
|
"author": "Joker <13255238145@163.com>",
|
|
42
43
|
"dependencies": {
|
|
43
|
-
"axios": "^0.
|
|
44
|
-
"qs": "^6.
|
|
44
|
+
"axios": "^0.27.2",
|
|
45
|
+
"qs": "^6.11.0"
|
|
45
46
|
},
|
|
46
47
|
"scripts": {
|
|
47
48
|
"bootstrap:ci": "pnpm i",
|
|
@@ -52,5 +53,5 @@
|
|
|
52
53
|
"compile": "rm -rf lib es && tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
|
|
53
54
|
"release": "pnpm compile && varlet-cli release"
|
|
54
55
|
},
|
|
55
|
-
"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
|
|
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"
|
|
56
57
|
}
|