laravel-request 1.2.4 → 1.2.6
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/package.json +1 -1
- package/src/Api.js +14 -14
- package/src/ApiRequest.js +14 -0
- package/src/types.d.ts +5 -0
package/package.json
CHANGED
package/src/Api.js
CHANGED
|
@@ -4,11 +4,6 @@ import { decode } from "@msgpack/msgpack";
|
|
|
4
4
|
|
|
5
5
|
export default class Api {
|
|
6
6
|
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
* @type {ApiRequest}
|
|
10
|
-
*/
|
|
11
|
-
static debug = false;
|
|
12
7
|
/**
|
|
13
8
|
*
|
|
14
9
|
* @type {ApiRequest}
|
|
@@ -182,7 +177,7 @@ export default class Api {
|
|
|
182
177
|
*/
|
|
183
178
|
static logRequest(request)
|
|
184
179
|
{
|
|
185
|
-
if(
|
|
180
|
+
if(this.isDebug())
|
|
186
181
|
{
|
|
187
182
|
console.log('Url: ' + request.url)
|
|
188
183
|
console.log('Method: ' + request.method)
|
|
@@ -249,7 +244,7 @@ export default class Api {
|
|
|
249
244
|
* @param obj
|
|
250
245
|
* @return {*}
|
|
251
246
|
*/
|
|
252
|
-
static async makeRequest({url, method, data = {}, params = {}, headers = {}, success = () => {}, error = () => {}})
|
|
247
|
+
static async makeRequest({url, method, data = {}, params = {}, source, headers = {}, success = () => {}, error = () => {}})
|
|
253
248
|
{
|
|
254
249
|
try {
|
|
255
250
|
headers['Accept'] = 'application/json, application/msgpack, text/plain, */*';
|
|
@@ -265,10 +260,10 @@ export default class Api {
|
|
|
265
260
|
switch (method)
|
|
266
261
|
{
|
|
267
262
|
case 'GET':
|
|
268
|
-
response = await Api.handleGetRequest({ url, data, headers });
|
|
263
|
+
response = await Api.handleGetRequest({ url, data, headers, source });
|
|
269
264
|
break;
|
|
270
265
|
default:
|
|
271
|
-
response = await Api.handleDefaultRequest({ url, method, data, params, headers });
|
|
266
|
+
response = await Api.handleDefaultRequest({ url, method, data, params, headers, source });
|
|
272
267
|
break;
|
|
273
268
|
}
|
|
274
269
|
|
|
@@ -349,9 +344,10 @@ export default class Api {
|
|
|
349
344
|
* @param url
|
|
350
345
|
* @param data
|
|
351
346
|
* @param headers
|
|
347
|
+
* @param source
|
|
352
348
|
* @return {Promise<AxiosResponse<any>>}
|
|
353
349
|
*/
|
|
354
|
-
static async handleGetRequest({ url, data, headers }) {
|
|
350
|
+
static async handleGetRequest({ url, data, headers, source }) {
|
|
355
351
|
let query = Api.encodeQueryString(data);
|
|
356
352
|
let response;
|
|
357
353
|
|
|
@@ -365,7 +361,8 @@ export default class Api {
|
|
|
365
361
|
data: data,
|
|
366
362
|
headers: headers,
|
|
367
363
|
timeout: 0,
|
|
368
|
-
responseType: 'arraybuffer'
|
|
364
|
+
responseType: 'arraybuffer',
|
|
365
|
+
cancelToken: source?.token
|
|
369
366
|
};
|
|
370
367
|
Api.logRequest(request);
|
|
371
368
|
response = await axios.request(request);
|
|
@@ -377,7 +374,8 @@ export default class Api {
|
|
|
377
374
|
params: data,
|
|
378
375
|
headers: headers,
|
|
379
376
|
timeout: 0,
|
|
380
|
-
responseType: 'arraybuffer'
|
|
377
|
+
responseType: 'arraybuffer',
|
|
378
|
+
cancelToken: source?.token
|
|
381
379
|
};
|
|
382
380
|
Api.logRequest(request);
|
|
383
381
|
response = await axios.request(request);
|
|
@@ -393,9 +391,10 @@ export default class Api {
|
|
|
393
391
|
* @param data
|
|
394
392
|
* @param params
|
|
395
393
|
* @param headers
|
|
394
|
+
* @param source
|
|
396
395
|
* @return {Promise<AxiosResponse<any>>}
|
|
397
396
|
*/
|
|
398
|
-
static async handleDefaultRequest({ url, method, data, params, headers }) {
|
|
397
|
+
static async handleDefaultRequest({ url, method, data, params, headers, source }) {
|
|
399
398
|
params.timestamp = new Date().getTime();
|
|
400
399
|
|
|
401
400
|
params.unique_hash = Api.generateHash();
|
|
@@ -407,7 +406,8 @@ export default class Api {
|
|
|
407
406
|
params: params,
|
|
408
407
|
headers: headers,
|
|
409
408
|
timeout: 0,
|
|
410
|
-
responseType: 'arraybuffer'
|
|
409
|
+
responseType: 'arraybuffer',
|
|
410
|
+
cancelToken: source?.token
|
|
411
411
|
};
|
|
412
412
|
Api.logRequest(request);
|
|
413
413
|
return await axios.request(request);
|
package/src/ApiRequest.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Api from "./Api";
|
|
2
2
|
import Builder from "./Builder";
|
|
3
3
|
import Binding from "./Binding";
|
|
4
|
+
import axios from "axios";
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
*
|
|
@@ -46,6 +47,7 @@ export default class ApiRequest {
|
|
|
46
47
|
this.callError = () => {
|
|
47
48
|
|
|
48
49
|
};
|
|
50
|
+
this.source = null;
|
|
49
51
|
|
|
50
52
|
Builder.availableMethod.map(function (val) {
|
|
51
53
|
self[val] = function () {
|
|
@@ -171,6 +173,16 @@ export default class ApiRequest {
|
|
|
171
173
|
return this.domain + '/api/v1/call/' + this.target + '/' + this.focus;
|
|
172
174
|
}
|
|
173
175
|
|
|
176
|
+
/**
|
|
177
|
+
* вернет токен для отмены запроса
|
|
178
|
+
*
|
|
179
|
+
* @returns {null}
|
|
180
|
+
*/
|
|
181
|
+
getSource()
|
|
182
|
+
{
|
|
183
|
+
return this.source;
|
|
184
|
+
}
|
|
185
|
+
|
|
174
186
|
/**
|
|
175
187
|
*
|
|
176
188
|
* @param successCallback
|
|
@@ -298,6 +310,7 @@ export default class ApiRequest {
|
|
|
298
310
|
let self = this;
|
|
299
311
|
this.callSuccess = successCallback;
|
|
300
312
|
this.callError = errorCallback;
|
|
313
|
+
this.source = axios.CancelToken.source();
|
|
301
314
|
|
|
302
315
|
let url = byUrl ? this.url : this.getUrl();
|
|
303
316
|
let notify = null;
|
|
@@ -308,6 +321,7 @@ export default class ApiRequest {
|
|
|
308
321
|
method: this.method,
|
|
309
322
|
data: data,
|
|
310
323
|
params: params,
|
|
324
|
+
source: this.source,
|
|
311
325
|
success: (response, status, xhr) => {
|
|
312
326
|
if (response && response.result === 'success') {
|
|
313
327
|
notify = this.handleSuccessNotification(response, xhr.status);
|
package/src/types.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
// Define an interface for the ApiRequest class
|
|
2
2
|
|
|
3
3
|
declare module 'laravel-request' {
|
|
4
|
+
import * as axios from "axios/index";
|
|
5
|
+
|
|
4
6
|
export class ApiRequest {
|
|
5
7
|
url: string;
|
|
8
|
+
source: any;
|
|
6
9
|
static notifyClass: any | null;
|
|
7
10
|
domain: string;
|
|
8
11
|
target: string;
|
|
@@ -47,6 +50,8 @@ declare module 'laravel-request' {
|
|
|
47
50
|
|
|
48
51
|
getUrl(): string;
|
|
49
52
|
|
|
53
|
+
getSource(): axios.CancelTokenSource|null;
|
|
54
|
+
|
|
50
55
|
call(
|
|
51
56
|
successCallback?: (r: any) => void,
|
|
52
57
|
errorCallback?: () => void,
|