@xylabs/axios 5.0.30 → 5.0.32

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.
@@ -1,26 +1,15 @@
1
1
  import type { Logger } from '@xylabs/logger';
2
- import type { AxiosRequestConfig, AxiosResponse, RawAxiosRequestConfig } from 'axios';
2
+ import type { AxiosResponse, RawAxiosRequestConfig } from 'axios';
3
+ import { Axios } from 'axios';
3
4
  export type RawAxiosJsonRequestConfig<D = any> = RawAxiosRequestConfig<D> & {
4
5
  compressLength?: number;
5
6
  };
6
- export declare class AxiosJson {
7
+ export declare class AxiosJson extends Axios {
7
8
  static defaultLogger?: Logger;
8
- private axios;
9
9
  constructor(config?: RawAxiosJsonRequestConfig);
10
+ static axiosConfig({ compressLength, headers, ...config }?: RawAxiosJsonRequestConfig): RawAxiosJsonRequestConfig;
11
+ static create(config?: RawAxiosJsonRequestConfig): Axios;
10
12
  static finalPath(response: AxiosResponse): any;
11
- private static axiosConfig;
12
13
  private static buildHeaders;
13
- delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
14
- get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
15
- getUri(config?: AxiosRequestConfig): string;
16
- head<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
17
- options<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
18
- patch<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
19
- patchForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
20
- post<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
21
- postForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
22
- put<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
23
- putForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
24
- request<T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>;
25
14
  }
26
15
  //# sourceMappingURL=AxiosJson.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AxiosJson.d.ts","sourceRoot":"","sources":["../../src/AxiosJson.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AxiosJson.d.ts","sourceRoot":"","sources":["../../src/AxiosJson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AACjE,OAAO,EAAE,KAAK,EAAgB,MAAM,OAAO,CAAA;AAI3C,MAAM,MAAM,yBAAyB,CAAC,CAAC,GAAG,GAAG,IAAI,qBAAqB,CAAC,CAAC,CAAC,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvG,qBAAa,SAAU,SAAQ,KAAK;IAClC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;gBAEjB,MAAM,CAAC,EAAE,yBAAyB;IAI9C,MAAM,CAAC,WAAW,CAAC,EACjB,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,EACnC,GAAE,yBAA8B,GAAG,yBAAyB;IAsB7D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,yBAAyB;IAIhD,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa;IAYxC,OAAO,CAAC,MAAM,CAAC,YAAY;CAO5B"}
@@ -1,20 +1,10 @@
1
1
  // src/AxiosJson.ts
2
2
  import { Axios, AxiosHeaders } from "axios";
3
3
  import { gzip } from "pako";
4
- var AxiosJson = class _AxiosJson {
4
+ var AxiosJson = class _AxiosJson extends Axios {
5
5
  static defaultLogger;
6
- axios = new Axios(_AxiosJson.axiosConfig());
7
6
  constructor(config) {
8
- this.axios = new Axios(_AxiosJson.axiosConfig(config));
9
- }
10
- static finalPath(response) {
11
- if (response.request.path) {
12
- return response.request.path.split("/").pop();
13
- } else if (response.request.responseURL) {
14
- return response.request.responseURL.split("/").pop();
15
- } else {
16
- this.defaultLogger?.warn("Failed to get final path from response");
17
- }
7
+ super(_AxiosJson.axiosConfig(config));
18
8
  }
19
9
  static axiosConfig({
20
10
  compressLength,
@@ -41,6 +31,18 @@ var AxiosJson = class _AxiosJson {
41
31
  ...config
42
32
  };
43
33
  }
34
+ static create(config) {
35
+ return new Axios(this.axiosConfig(config));
36
+ }
37
+ static finalPath(response) {
38
+ if (response.request.path) {
39
+ return response.request.path.split("/").pop();
40
+ } else if (response.request.responseURL) {
41
+ return response.request.responseURL.split("/").pop();
42
+ } else {
43
+ this.defaultLogger?.warn("Failed to get final path from response");
44
+ }
45
+ }
44
46
  static buildHeaders(headers) {
45
47
  const axiosHeaders = new AxiosHeaders();
46
48
  axiosHeaders.set("Accept", "application/json, text/plain, *.*");
@@ -48,42 +50,6 @@ var AxiosJson = class _AxiosJson {
48
50
  for (const [key, value] of Object.entries(headers ?? {})) axiosHeaders.set(key, value);
49
51
  return axiosHeaders;
50
52
  }
51
- delete(url, config) {
52
- return this.axios.delete(url, config);
53
- }
54
- get(url, config) {
55
- return this.axios.get(url, config);
56
- }
57
- getUri(config) {
58
- return this.axios.getUri(config);
59
- }
60
- head(url, config) {
61
- return this.axios.head(url, config);
62
- }
63
- options(url, config) {
64
- return this.axios.options(url, config);
65
- }
66
- patch(url, data, config) {
67
- return this.axios.patch(url, data, config);
68
- }
69
- patchForm(url, data, config) {
70
- return this.axios.patch(url, data, config);
71
- }
72
- post(url, data, config) {
73
- return this.axios.post(url, data, config);
74
- }
75
- postForm(url, data, config) {
76
- return this.axios.post(url, data, config);
77
- }
78
- put(url, data, config) {
79
- return this.axios.put(url, data, config);
80
- }
81
- putForm(url, data, config) {
82
- return this.axios.put(url, data, config);
83
- }
84
- request(config) {
85
- return this.axios.request(config);
86
- }
87
53
  };
88
54
 
89
55
  // src/AxiosJsonUncompressed.ts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AxiosJson.ts","../../src/AxiosJsonUncompressed.ts","../../src/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Logger } from '@xylabs/logger'\nimport type {\n AxiosRequestConfig, AxiosResponse, RawAxiosRequestConfig,\n} from 'axios'\nimport { Axios, AxiosHeaders } from 'axios'\nimport { gzip } from 'pako'\n\nexport type RawAxiosJsonRequestConfig<D = any> = RawAxiosRequestConfig<D> & { compressLength?: number }\n\nexport class AxiosJson {\n static defaultLogger?: Logger\n\n private axios: Axios = new Axios(AxiosJson.axiosConfig())\n\n constructor(config?: RawAxiosJsonRequestConfig) {\n this.axios = new Axios(AxiosJson.axiosConfig(config))\n }\n\n static finalPath(response: AxiosResponse) {\n if (response.request.path) {\n // nodejs\n return response.request.path.split('/').pop()\n } else if (response.request.responseURL) {\n // browser\n return response.request.responseURL.split('/').pop()\n } else {\n this.defaultLogger?.warn('Failed to get final path from response')\n }\n }\n\n private static axiosConfig({\n compressLength, headers, ...config\n }: RawAxiosJsonRequestConfig = {}): RawAxiosJsonRequestConfig {\n return {\n headers: this.buildHeaders(headers),\n transformRequest: (data, headers) => {\n const json = JSON.stringify(data)\n if (headers !== undefined && data && json.length > (compressLength ?? 1024)) {\n headers.set('Content-Encoding', 'gzip')\n return gzip(json).buffer\n }\n return json\n },\n transformResponse: (data) => {\n try {\n return JSON.parse(data)\n } catch {\n return null\n }\n },\n ...config,\n }\n }\n\n private static buildHeaders(headers: RawAxiosJsonRequestConfig['headers']) {\n const axiosHeaders = new AxiosHeaders()\n axiosHeaders.set('Accept', 'application/json, text/plain, *.*')\n axiosHeaders.set('Content-Type', 'application/json')\n for (const [key, value] of Object.entries(headers ?? {})) axiosHeaders.set(key, value)\n return axiosHeaders\n }\n\n delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.delete<T, R, D>(url, config)\n }\n\n get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.get<T, R, D>(url, config)\n }\n\n getUri(config?: AxiosRequestConfig): string {\n return this.axios.getUri(config)\n }\n\n head<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.head<T, R, D>(url, config)\n }\n\n options<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.options<T, R, D>(url, config)\n }\n\n patch<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.patch<T, R, D>(url, data, config)\n }\n\n patchForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.patch<T, R, D>(url, data, config)\n }\n\n post<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.post<T, R, D>(url, data, config)\n }\n\n postForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.post<T, R, D>(url, data, config)\n }\n\n put<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.put<T, R, D>(url, data, config)\n }\n\n putForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.put<T, R, D>(url, data, config)\n }\n\n request<T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R> {\n return this.axios.request<T, R, D>(config)\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { AxiosRequestConfig, AxiosResponse } from 'axios'\nimport { Axios, AxiosHeaders } from 'axios'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AxiosJsonRequestUncompressedConfig<D = any> = AxiosRequestConfig<D>\n\nexport class AxiosJsonUncompressed extends Axios {\n static defaultLogger?: Logger\n\n constructor(config?: AxiosJsonRequestUncompressedConfig) {\n super(AxiosJsonUncompressed.axiosConfig(config))\n }\n\n static create(config?: AxiosJsonRequestUncompressedConfig) {\n return new this(config) as Axios\n }\n\n static finalPath(response: AxiosResponse) {\n if (response.request.path) {\n // nodejs\n return response.request.path.split('/').pop()\n } else if (response.request.responseURL) {\n // browser\n return response.request.responseURL.split('/').pop()\n } else {\n this.defaultLogger?.warn('Failed to get final path from response')\n }\n }\n\n private static axiosConfig({ headers, ...config }: AxiosJsonRequestUncompressedConfig = {}): AxiosJsonRequestUncompressedConfig {\n return {\n headers: this.buildHeaders(headers),\n transformRequest: (data) => {\n const json = JSON.stringify(data)\n return JSON.stringify(json)\n },\n transformResponse: (data) => {\n try {\n return JSON.parse(data)\n } catch {\n return null\n }\n },\n ...config,\n }\n }\n\n private static buildHeaders(headers: AxiosJsonRequestUncompressedConfig['headers']) {\n const axiosHeaders = new AxiosHeaders()\n axiosHeaders.set('Accept', 'application/json, text/plain, *.*')\n axiosHeaders.set('Content-Type', 'application/json')\n for (const [key, value] of Object.entries(headers ?? {})) axiosHeaders.set(key, value)\n return axiosHeaders\n }\n}\n","import { AxiosJson } from './AxiosJson.ts'\nimport { AxiosJsonUncompressed } from './AxiosJsonUncompressed.ts'\n\nexport * from './AxiosJson.ts'\nexport * from './AxiosJsonUncompressed.ts'\nexport { gzip } from 'pako'\n\nexport const axios = new AxiosJson()\nexport const axiosUncompressed = new AxiosJsonUncompressed()\n"],"mappings":"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","names":["headers","Axios","AxiosHeaders","gzip"]}
1
+ {"version":3,"sources":["../../src/AxiosJson.ts","../../src/AxiosJsonUncompressed.ts","../../src/index.ts"],"sourcesContent":["import type { Logger } from '@xylabs/logger'\nimport type { AxiosResponse, RawAxiosRequestConfig } from 'axios'\nimport { Axios, AxiosHeaders } from 'axios'\nimport { gzip } from 'pako'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type RawAxiosJsonRequestConfig<D = any> = RawAxiosRequestConfig<D> & { compressLength?: number }\n\nexport class AxiosJson extends Axios {\n static defaultLogger?: Logger\n\n constructor(config?: RawAxiosJsonRequestConfig) {\n super(AxiosJson.axiosConfig(config))\n }\n\n static axiosConfig({\n compressLength, headers, ...config\n }: RawAxiosJsonRequestConfig = {}): RawAxiosJsonRequestConfig {\n return {\n headers: this.buildHeaders(headers),\n transformRequest: (data, headers) => {\n const json = JSON.stringify(data)\n if (headers !== undefined && data && json.length > (compressLength ?? 1024)) {\n headers.set('Content-Encoding', 'gzip')\n return gzip(json).buffer\n }\n return json\n },\n transformResponse: (data) => {\n try {\n return JSON.parse(data)\n } catch {\n return null\n }\n },\n ...config,\n }\n }\n\n static create(config?: RawAxiosJsonRequestConfig) {\n return new Axios(this.axiosConfig(config))\n }\n\n static finalPath(response: AxiosResponse) {\n if (response.request.path) {\n // nodejs\n return response.request.path.split('/').pop()\n } else if (response.request.responseURL) {\n // browser\n return response.request.responseURL.split('/').pop()\n } else {\n this.defaultLogger?.warn('Failed to get final path from response')\n }\n }\n\n private static buildHeaders(headers: RawAxiosJsonRequestConfig['headers']) {\n const axiosHeaders = new AxiosHeaders()\n axiosHeaders.set('Accept', 'application/json, text/plain, *.*')\n axiosHeaders.set('Content-Type', 'application/json')\n for (const [key, value] of Object.entries(headers ?? {})) axiosHeaders.set(key, value)\n return axiosHeaders\n }\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { AxiosRequestConfig, AxiosResponse } from 'axios'\nimport { Axios, AxiosHeaders } from 'axios'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AxiosJsonRequestUncompressedConfig<D = any> = AxiosRequestConfig<D>\n\nexport class AxiosJsonUncompressed extends Axios {\n static defaultLogger?: Logger\n\n constructor(config?: AxiosJsonRequestUncompressedConfig) {\n super(AxiosJsonUncompressed.axiosConfig(config))\n }\n\n static create(config?: AxiosJsonRequestUncompressedConfig) {\n return new this(config) as Axios\n }\n\n static finalPath(response: AxiosResponse) {\n if (response.request.path) {\n // nodejs\n return response.request.path.split('/').pop()\n } else if (response.request.responseURL) {\n // browser\n return response.request.responseURL.split('/').pop()\n } else {\n this.defaultLogger?.warn('Failed to get final path from response')\n }\n }\n\n private static axiosConfig({ headers, ...config }: AxiosJsonRequestUncompressedConfig = {}): AxiosJsonRequestUncompressedConfig {\n return {\n headers: this.buildHeaders(headers),\n transformRequest: (data) => {\n const json = JSON.stringify(data)\n return JSON.stringify(json)\n },\n transformResponse: (data) => {\n try {\n return JSON.parse(data)\n } catch {\n return null\n }\n },\n ...config,\n }\n }\n\n private static buildHeaders(headers: AxiosJsonRequestUncompressedConfig['headers']) {\n const axiosHeaders = new AxiosHeaders()\n axiosHeaders.set('Accept', 'application/json, text/plain, *.*')\n axiosHeaders.set('Content-Type', 'application/json')\n for (const [key, value] of Object.entries(headers ?? {})) axiosHeaders.set(key, value)\n return axiosHeaders\n }\n}\n","import { AxiosJson } from './AxiosJson.ts'\nimport { AxiosJsonUncompressed } from './AxiosJsonUncompressed.ts'\n\nexport * from './AxiosJson.ts'\nexport * from './AxiosJsonUncompressed.ts'\nexport { gzip } from 'pako'\n\nexport const axios = new AxiosJson()\nexport const axiosUncompressed = new AxiosJsonUncompressed()\n"],"mappings":"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","names":["headers","Axios","AxiosHeaders","gzip"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xylabs/axios",
3
- "version": "5.0.30",
3
+ "version": "5.0.32",
4
4
  "description": "Base functionality used throughout XY Labs TypeScript/JavaScript libraries",
5
5
  "keywords": [
6
6
  "axios",
@@ -42,7 +42,7 @@
42
42
  "src"
43
43
  ],
44
44
  "dependencies": {
45
- "@xylabs/logger": "~5.0.30",
45
+ "@xylabs/logger": "~5.0.32",
46
46
  "pako": "~2.1.0"
47
47
  },
48
48
  "devDependencies": {
package/src/AxiosJson.ts CHANGED
@@ -1,35 +1,19 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import type { Logger } from '@xylabs/logger'
3
- import type {
4
- AxiosRequestConfig, AxiosResponse, RawAxiosRequestConfig,
5
- } from 'axios'
2
+ import type { AxiosResponse, RawAxiosRequestConfig } from 'axios'
6
3
  import { Axios, AxiosHeaders } from 'axios'
7
4
  import { gzip } from 'pako'
8
5
 
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
7
  export type RawAxiosJsonRequestConfig<D = any> = RawAxiosRequestConfig<D> & { compressLength?: number }
10
8
 
11
- export class AxiosJson {
9
+ export class AxiosJson extends Axios {
12
10
  static defaultLogger?: Logger
13
11
 
14
- private axios: Axios = new Axios(AxiosJson.axiosConfig())
15
-
16
12
  constructor(config?: RawAxiosJsonRequestConfig) {
17
- this.axios = new Axios(AxiosJson.axiosConfig(config))
18
- }
19
-
20
- static finalPath(response: AxiosResponse) {
21
- if (response.request.path) {
22
- // nodejs
23
- return response.request.path.split('/').pop()
24
- } else if (response.request.responseURL) {
25
- // browser
26
- return response.request.responseURL.split('/').pop()
27
- } else {
28
- this.defaultLogger?.warn('Failed to get final path from response')
29
- }
13
+ super(AxiosJson.axiosConfig(config))
30
14
  }
31
15
 
32
- private static axiosConfig({
16
+ static axiosConfig({
33
17
  compressLength, headers, ...config
34
18
  }: RawAxiosJsonRequestConfig = {}): RawAxiosJsonRequestConfig {
35
19
  return {
@@ -53,6 +37,22 @@ export class AxiosJson {
53
37
  }
54
38
  }
55
39
 
40
+ static create(config?: RawAxiosJsonRequestConfig) {
41
+ return new Axios(this.axiosConfig(config))
42
+ }
43
+
44
+ static finalPath(response: AxiosResponse) {
45
+ if (response.request.path) {
46
+ // nodejs
47
+ return response.request.path.split('/').pop()
48
+ } else if (response.request.responseURL) {
49
+ // browser
50
+ return response.request.responseURL.split('/').pop()
51
+ } else {
52
+ this.defaultLogger?.warn('Failed to get final path from response')
53
+ }
54
+ }
55
+
56
56
  private static buildHeaders(headers: RawAxiosJsonRequestConfig['headers']) {
57
57
  const axiosHeaders = new AxiosHeaders()
58
58
  axiosHeaders.set('Accept', 'application/json, text/plain, *.*')
@@ -60,52 +60,4 @@ export class AxiosJson {
60
60
  for (const [key, value] of Object.entries(headers ?? {})) axiosHeaders.set(key, value)
61
61
  return axiosHeaders
62
62
  }
63
-
64
- delete<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {
65
- return this.axios.delete<T, R, D>(url, config)
66
- }
67
-
68
- get<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {
69
- return this.axios.get<T, R, D>(url, config)
70
- }
71
-
72
- getUri(config?: AxiosRequestConfig): string {
73
- return this.axios.getUri(config)
74
- }
75
-
76
- head<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {
77
- return this.axios.head<T, R, D>(url, config)
78
- }
79
-
80
- options<T = any, R = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R> {
81
- return this.axios.options<T, R, D>(url, config)
82
- }
83
-
84
- patch<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {
85
- return this.axios.patch<T, R, D>(url, data, config)
86
- }
87
-
88
- patchForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {
89
- return this.axios.patch<T, R, D>(url, data, config)
90
- }
91
-
92
- post<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {
93
- return this.axios.post<T, R, D>(url, data, config)
94
- }
95
-
96
- postForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {
97
- return this.axios.post<T, R, D>(url, data, config)
98
- }
99
-
100
- put<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {
101
- return this.axios.put<T, R, D>(url, data, config)
102
- }
103
-
104
- putForm<T = any, R = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R> {
105
- return this.axios.put<T, R, D>(url, data, config)
106
- }
107
-
108
- request<T = any, R = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R> {
109
- return this.axios.request<T, R, D>(config)
110
- }
111
63
  }