@brandup/ui-ajax 1.0.44 → 2.0.1

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
@@ -12,7 +12,7 @@ npm i @brandup/ui-ajax@latest
12
12
 
13
13
  ## AJAX request
14
14
 
15
- Simplify async ajax request method.
15
+ Simplify async ajax request method. `request` is the `fetch`-based, promise-returning API.
16
16
 
17
17
  ```
18
18
  import { request } from "@brandup/ui-ajax";
@@ -21,10 +21,13 @@ await request({
21
21
  url?: string | null;
22
22
  query?: QueryData | null;
23
23
  method?: AJAXMethod | null;
24
+ mode?: RequestMode;
25
+ credentials?: RequestCredentials;
24
26
  timeout?: number | null;
25
27
  headers?: { [key: string]: string } | null;
26
28
  type?: AJAXReqestType | null;
27
29
  data?: string | object | Blob | FormData | HTMLFormElement | null;
30
+ abort?: AbortSignal;
28
31
  success?: ResponseDelegate | null;
29
32
  error?: ErrorDelegate | null;
30
33
  disableCache?: boolean | null;
@@ -42,15 +45,49 @@ await request({
42
45
  .catch(reason => console.error(reason));
43
46
  ```
44
47
 
48
+ The response body is parsed by `Content-Type`: JSON, `text/html`, `text/plain`, otherwise a `Blob`. The default `timeout` is `30000` ms and `credentials` defaults to `"include"`.
49
+
45
50
  ### Request cancellation
46
51
 
52
+ A request is aborted when its `timeout` elapses, when the `abort` option signals, or when the second `abortSignal` argument signals.
53
+
47
54
  ```
48
55
  import { request } from "@brandup/ui-ajax";
49
56
 
50
57
  const cancellation = new AbortController();
51
58
 
52
- await request({ }, cancellation.signal)
59
+ await request({ /* request options */ }, cancellation.signal)
53
60
  .catch(reason => console.error(reason));
61
+
62
+ cancellation.abort();
63
+ ```
64
+
65
+ ### Disable cache
66
+
67
+ Set `disableCache: true` to bypass HTTP caching. In `request` (fetch) this sends `cache: "no-store"`; in `ajaxRequest` (XHR) it appends a `_=<timestamp>` cache-busting query parameter.
68
+
69
+ ```
70
+ await request({ url: "/api/data", disableCache: true });
71
+ ```
72
+
73
+ ## AJAX request with XMLHttpRequest
74
+
75
+ `ajaxRequest` is the `XMLHttpRequest`-based API. It always sends credentials, delivers results via the `success`/`error` callbacks (it does not return a promise), and returns the underlying `XMLHttpRequest` so the call can be aborted. Unlike `request`, there is no `blob` response type.
76
+
77
+ ```
78
+ import { ajaxRequest } from "@brandup/ui-ajax";
79
+
80
+ const xhr = ajaxRequest({
81
+ url: "/api/data",
82
+ method: "POST",
83
+ data: { name: "value" },
84
+ success: response => {
85
+ // response.status, response.data, response.type, ...
86
+ },
87
+ error: (request, reason) => console.error(reason)
88
+ });
89
+
90
+ xhr.abort(); // cancel the request
54
91
  ```
55
92
 
56
93
  ## Queue requests
@@ -61,16 +98,33 @@ Sequential execution of AJAX requests.
61
98
  import { AjaxQueue } from "@brandup/ui-ajax";
62
99
 
63
100
  const queue = new AjaxQueue({
64
- canRequest?: (request: AjaxRequest) => void | boolean;
101
+ canRequest?: (request: AjaxRequest) => boolean | void;
65
102
  successRequest?: (request: AjaxRequest, response: AjaxResponse) => void;
66
103
  errorRequest?: (response: AjaxRequest, reason?: any) => void;
67
104
  });
68
105
 
69
- queue.push({ request options });
106
+ queue.push({ /* request options */ }); // enqueue a request (fire and forget)
107
+
108
+ queue.push({ /* request options */ }, abortSignal); // with per-request cancellation
70
109
 
71
- queue.reset(); // clear queue without abort current request
110
+ queue.reset(); // clear queue without aborting current request
72
111
 
73
112
  queue.reset(true); // abort current request and clear queue
74
113
 
75
- queue.destroy();
114
+ queue.destroy(); // clear queue, abort current request; further push() throws
115
+ ```
116
+
117
+ Queue state can be inspected via `queue.length` (waiting requests), `queue.isEmpty` (nothing waiting) and `queue.isFree` (nothing waiting and nothing executing).
118
+
119
+ ### Awaiting a queued request
120
+
121
+ `enqueue` queues a request like `push`, but returns a promise that resolves with the response (or rejects with the failure reason). The request's own `success`/`error` callbacks are still invoked.
122
+
123
+ ```
124
+ import { AjaxQueue } from "@brandup/ui-ajax";
125
+
126
+ const queue = new AjaxQueue();
127
+
128
+ const response = await queue.enqueue({ url: "/api/data" });
129
+ // response.status, response.data, ...
76
130
  ```
package/dist/cjs/index.js CHANGED
@@ -1,5 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ /**
4
+ * Builds a `URLSearchParams` from query data or a `FormData`.
5
+ *
6
+ * Array values produce repeated keys; `null` values are skipped.
7
+ *
8
+ * @param query Source parameters.
9
+ * @returns The populated `URLSearchParams` (empty when `query` is nullish).
10
+ */
3
11
  const createQuery = (query) => {
4
12
  const urlParams = new URLSearchParams();
5
13
  if (!query)
@@ -24,6 +32,13 @@ const createQuery = (query) => {
24
32
  }
25
33
  return urlParams;
26
34
  };
35
+ /**
36
+ * Appends query parameters to a URL, choosing `?` or `&` as appropriate.
37
+ *
38
+ * @param url Base URL.
39
+ * @param query Parameters to append; nothing is added when empty.
40
+ * @returns The resulting URL.
41
+ */
27
42
  const addQuery = (url, query) => {
28
43
  if (query) {
29
44
  const urlParams = createQuery(query);
@@ -37,6 +52,12 @@ const addQuery = (url, query) => {
37
52
  }
38
53
  return url;
39
54
  };
55
+ /**
56
+ * Encodes a `FormData` as an `application/x-www-form-urlencoded` string.
57
+ *
58
+ * @param data Form data to encode.
59
+ * @returns The URL-encoded form string.
60
+ */
40
61
  const encodeForm = (data) => {
41
62
  const query = createQuery(data);
42
63
  return query.toString();
@@ -58,7 +79,7 @@ const detectRequestType = (options) => {
58
79
  if (body instanceof Blob)
59
80
  options.type = "BLOB";
60
81
  else if (body instanceof FormData)
61
- options.type = null;
82
+ options.type = "FORMDATA";
62
83
  else if (body instanceof HTMLFormElement)
63
84
  options.type = "FORM";
64
85
  else if (body instanceof Object)
@@ -91,15 +112,13 @@ const prepareRequest = (options, body) => {
91
112
  body = JSON.stringify(body);
92
113
  break;
93
114
  case "FORM":
94
- if (body instanceof HTMLFormElement) {
115
+ // Convert HTMLFormElement to FormData first, then URL-encode both paths
116
+ if (body instanceof HTMLFormElement)
95
117
  body = new FormData(body);
96
- }
97
- else if (body instanceof FormData)
98
- contentType = FORM_URL;
99
- if (contentType == FORM_URL)
118
+ if (body instanceof FormData) {
100
119
  body = encodeForm(body);
101
- else if (contentType == FORM_DATA)
102
- contentType = null;
120
+ contentType = FORM_URL;
121
+ }
103
122
  break;
104
123
  case "FORMDATA":
105
124
  break;
@@ -125,7 +144,19 @@ var internals = {
125
144
  prepareRequest
126
145
  };
127
146
 
128
- /** Request with fetch. */
147
+ /**
148
+ * Performs an AJAX request using the Fetch API.
149
+ *
150
+ * The response body is parsed according to its `Content-Type`: JSON, `text/html`,
151
+ * `text/plain`, otherwise a `Blob`. `disableCache` maps to `cache: "no-store"`.
152
+ * The request is aborted when its `timeout` elapses (defaults to 30000 ms), or when
153
+ * `options.abort` or the `abortSignal` argument signals.
154
+ *
155
+ * @param options Request options. `GET`/`HEAD` requests must not carry `data`.
156
+ * @param abortSignal Optional additional signal used to cancel the request.
157
+ * @returns The parsed response. `options.success` is also invoked before resolving.
158
+ * @throws On network/abort/timeout errors, or for unsupported (opaque) response types; `options.error` is invoked before re-throwing.
159
+ */
129
160
  async function request(options, abortSignal) {
130
161
  let { mode, credentials = "include" } = options;
131
162
  let url = options.url || location.href;
@@ -133,7 +164,7 @@ async function request(options, abortSignal) {
133
164
  const method = options.method ? options.method.toUpperCase() : "GET";
134
165
  let body = options.data;
135
166
  if (body && (method === "GET" || method === "HEAD"))
136
- throw new Error("GET method is not support request with data.");
167
+ throw new Error(`${method} method does not support a request body.`);
137
168
  internals.detectRequestType(options);
138
169
  const prepared = internals.prepareRequest(options, body);
139
170
  const abortSignals = [AbortSignal.timeout(options.timeout ?? internals.DEFAULT_TIMEOUT)];
@@ -145,7 +176,7 @@ async function request(options, abortSignal) {
145
176
  const response = await fetch(url, {
146
177
  method,
147
178
  headers: new Headers(prepared.headers),
148
- cache: options.disableCache ? "no-cache" : "default",
179
+ cache: options.disableCache ? "no-store" : "default",
149
180
  mode,
150
181
  credentials,
151
182
  redirect: "follow",
@@ -214,7 +245,18 @@ async function request(options, abortSignal) {
214
245
  }
215
246
  }
216
247
 
217
- /** Request with XMLHttpRequest. */
248
+ /**
249
+ * Performs an AJAX request using `XMLHttpRequest`, always with credentials.
250
+ *
251
+ * The response body is parsed by `Content-Type` into JSON, `text/plain` or `text/html`;
252
+ * unlike the fetch-based {@link request}, there is no `blob` response type. `disableCache`
253
+ * appends a `_=<timestamp>` cache-busting query parameter (rather than `cache: "no-store"`).
254
+ * Results and errors are delivered through `options.success` / `options.error`; this
255
+ * function does not return a promise.
256
+ *
257
+ * @param options Request options. `GET` requests must not carry `data`. `timeout` of `0` disables the timeout.
258
+ * @returns The underlying `XMLHttpRequest`, which can be used to `abort()` the request.
259
+ */
218
260
  const ajaxRequest = (options) => {
219
261
  let url = options.url || location.href;
220
262
  let { query } = options;
@@ -225,8 +267,8 @@ const ajaxRequest = (options) => {
225
267
  }
226
268
  url = addQuery(url, query);
227
269
  const method = options.method ? options.method.toUpperCase() : "GET";
228
- if (options.data && method === "GET")
229
- throw new Error("GET method is not support request with data.");
270
+ if (options.data && (method === "GET" || method === "HEAD"))
271
+ throw new Error(`${method} method does not support a request body.`);
230
272
  internals.detectRequestType(options);
231
273
  const prepared = internals.prepareRequest(options, options.data);
232
274
  const xhr = new XMLHttpRequest();
@@ -234,82 +276,77 @@ const ajaxRequest = (options) => {
234
276
  if (options.timeout === 0 || options.timeout)
235
277
  xhr.timeout = options.timeout;
236
278
  xhr.onreadystatechange = (_e) => {
237
- switch (xhr.readyState) {
238
- case XMLHttpRequest.DONE: {
239
- if (options.success) {
240
- let responseData = null;
241
- let responseType = "none";
242
- const contentType = xhr.getResponseHeader("Content-Type");
243
- if (xhr.response) {
244
- if (contentType) {
245
- if (contentType.includes("json")) {
246
- responseType = "json";
247
- try {
248
- responseData = JSON.parse(xhr.responseText);
249
- }
250
- catch (e) {
251
- if (options.error)
252
- options.error(options, e);
253
- break;
254
- }
255
- }
256
- else if (contentType.includes("text/plain")) {
257
- responseType = "text";
258
- responseData = xhr.responseText;
259
- }
260
- else if (contentType.includes("text/html")) {
261
- responseType = "html";
262
- responseData = xhr.responseText;
263
- }
264
- }
279
+ if (xhr.readyState !== XMLHttpRequest.DONE)
280
+ return;
281
+ if (options.success) {
282
+ let responseData = null;
283
+ let responseType = "none";
284
+ const contentType = xhr.getResponseHeader("Content-Type");
285
+ if (xhr.response && contentType) {
286
+ if (contentType.includes("json")) {
287
+ responseType = "json";
288
+ try {
289
+ responseData = JSON.parse(xhr.responseText);
290
+ }
291
+ catch (e) {
292
+ if (options.error)
293
+ options.error(options, e);
294
+ return;
265
295
  }
266
- const headers = {
267
- get(name) {
268
- return xhr.getResponseHeader(name);
269
- },
270
- has(name) {
271
- return !!xhr.getResponseHeader(name);
272
- },
273
- forEach(callbackfn, thisArg) {
274
- const headers = xhr.getAllResponseHeaders();
275
- // Convert the header string into an array
276
- // of individual headers
277
- const arr = headers.trim().split(/[\r\n]+/);
278
- // Create a map of header names to values
279
- arr.forEach((line) => {
280
- const parts = line.split(": ");
281
- const header = parts.shift() || "";
282
- const value = parts.join(": ");
283
- callbackfn.call(thisArg, value, header.toLowerCase(), {});
284
- });
285
- }
286
- };
287
- options.success({
288
- status: xhr.status,
289
- url: xhr.responseURL,
290
- redirected: false,
291
- type: responseType,
292
- contentType,
293
- headers,
294
- data: responseData,
295
- state: options.state
296
- });
297
296
  }
298
- break;
297
+ else if (contentType.includes("text/plain")) {
298
+ responseType = "text";
299
+ responseData = xhr.responseText;
300
+ }
301
+ else if (contentType.includes("text/html")) {
302
+ responseType = "html";
303
+ responseData = xhr.responseText;
304
+ }
299
305
  }
306
+ const xhrRef = xhr;
307
+ const headers = {
308
+ get(name) {
309
+ return xhrRef.getResponseHeader(name);
310
+ },
311
+ has(name) {
312
+ return !!xhrRef.getResponseHeader(name);
313
+ },
314
+ forEach(callbackfn, thisArg) {
315
+ xhrRef.getAllResponseHeaders()
316
+ .trim()
317
+ .split(/[\r\n]+/)
318
+ .filter(Boolean)
319
+ .forEach(line => {
320
+ const idx = line.indexOf(": ");
321
+ const key = idx >= 0 ? line.substring(0, idx).toLowerCase() : line.toLowerCase();
322
+ const value = idx >= 0 ? line.substring(idx + 2) : "";
323
+ callbackfn.call(thisArg, value, key, {});
324
+ });
325
+ }
326
+ };
327
+ options.success({
328
+ status: xhr.status,
329
+ url: xhr.responseURL,
330
+ redirected: false,
331
+ type: responseType,
332
+ contentType,
333
+ headers,
334
+ data: responseData,
335
+ state: options.state
336
+ });
300
337
  }
301
338
  };
302
339
  xhr.onabort = (_e) => {
303
340
  if (options.error)
304
- options.error(options, "Request aborted");
341
+ options.error(options, new Error("Request aborted"));
305
342
  };
306
343
  xhr.onerror = (_e) => {
307
344
  if (options.error)
308
- options.error(options, "Request network error");
345
+ options.error(options, new Error("Request network error"));
309
346
  };
310
347
  xhr.ontimeout = (_e) => {
311
348
  if (options.error)
312
- options.error(options, "Request timeout");
349
+ options.error(options, new Error("Request timeout"));
313
350
  };
314
351
  xhr.open(method, url, true);
315
352
  xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
@@ -326,25 +363,47 @@ const ajaxRequest = (options) => {
326
363
  return xhr;
327
364
  };
328
365
 
366
+ /** Queue that executes AJAX requests one at a time, in the order they were added. */
329
367
  class AjaxQueue {
330
368
  _options;
331
369
  _requests = [];
332
- _curent = null;
370
+ _current = null;
333
371
  _destroyed = false;
372
+ /** @param options Optional queue-wide hooks. */
334
373
  constructor(options) {
335
374
  this._options = options ?? {};
336
375
  }
376
+ /** Number of requests waiting in the queue (excluding the one currently executing). */
337
377
  get length() { return this._requests.length; }
338
- get isFree() { return !this._requests.length && !this._curent; }
378
+ /** `true` when nothing is queued and no request is currently executing. */
379
+ get isFree() { return !this._requests.length && !this._current; }
380
+ /** `true` when no requests are waiting in the queue (a request may still be executing). */
339
381
  get isEmpty() { return !this._requests.length; }
382
+ /**
383
+ * Adds a request to the queue. Starts executing immediately if the queue is idle.
384
+ *
385
+ * @param request Request options; its `success`/`error` callbacks are invoked as usual.
386
+ * @param abortSignal Optional signal used to cancel this specific request.
387
+ * @throws If the queue has been destroyed.
388
+ */
340
389
  push(request, abortSignal) {
341
390
  if (this._destroyed)
342
391
  throw new Error("AjaxQueue is destroyed.");
343
- this._requests.push({ request, cancel: abortSignal, abort: new AbortController() });
344
- if (!this._curent)
392
+ this._requests.push({ request, cancel: abortSignal });
393
+ if (!this._current)
345
394
  this.__execute();
346
395
  }
347
- enque(request, abortSignal) {
396
+ /**
397
+ * Adds a request to the queue and returns a promise for its response.
398
+ *
399
+ * Wraps {@link push}; the request's own `success`/`error` callbacks are still invoked,
400
+ * then the promise resolves with the response or rejects with the failure reason.
401
+ *
402
+ * @param request Request options.
403
+ * @param abortSignal Optional signal used to cancel this specific request.
404
+ * @returns A promise resolving with the {@link AjaxResponse}.
405
+ */
406
+ enqueue(request, abortSignal) {
348
407
  const { success, error } = request;
349
408
  return new Promise((resolve, reject) => {
350
409
  request.success = (response) => {
@@ -360,36 +419,49 @@ class AjaxQueue {
360
419
  this.push(request, abortSignal);
361
420
  });
362
421
  }
422
+ /** @deprecated Renamed to {@link enqueue}. */
423
+ enque(request, abortSignal) {
424
+ return this.enqueue(request, abortSignal);
425
+ }
426
+ /**
427
+ * Clears all queued (not-yet-started) requests.
428
+ *
429
+ * @param cancelCurrentRequest When `true`, also aborts the request currently executing.
430
+ */
363
431
  reset(cancelCurrentRequest = false) {
364
432
  this._requests = [];
365
- const current = this._curent;
366
- this._curent = null;
433
+ const current = this._current;
434
+ this._current = null;
367
435
  if (cancelCurrentRequest && current)
368
436
  current.abort?.abort("ResetAjaxQueue");
369
437
  }
438
+ /** Destroys the queue: clears pending requests and aborts the current one. Subsequent {@link push} calls throw. */
370
439
  destroy() {
371
440
  if (this._destroyed)
372
441
  return;
373
442
  this._destroyed = true;
374
443
  this._requests = [];
375
- if (this._curent) {
376
- this._curent.abort?.abort("DestroyAjaxQueue");
377
- this._curent = null;
444
+ if (this._current) {
445
+ this._current.abort?.abort("DestroyAjaxQueue");
446
+ this._current = null;
378
447
  }
379
448
  }
380
449
  __execute() {
381
450
  if (this._destroyed)
382
451
  return;
383
- if (this._curent)
452
+ if (this._current)
384
453
  throw new Error("AjaxQueue currently is executing.");
385
- const task = this._curent = this._requests.shift() ?? null;
454
+ const task = this._current = this._requests.shift() ?? null;
386
455
  if (task) {
387
456
  if (this._options.canRequest && this._options.canRequest(task.request) === false) {
388
- this.__next();
457
+ this.__next(task);
389
458
  return;
390
459
  }
391
- if (task.request.abort?.aborted || task.cancel?.aborted)
392
- task.result = Promise.reject("cancelled");
460
+ if (task.request.abort?.aborted || task.cancel?.aborted) {
461
+ const err = new Error("Request cancelled");
462
+ task.request.error?.(task.request, err);
463
+ task.result = Promise.reject(err);
464
+ }
393
465
  else {
394
466
  task.abort = new AbortController();
395
467
  task.result = request(task.request, task.cancel ? AbortSignal.any([task.abort.signal, task.cancel]) : task.abort.signal);
@@ -407,13 +479,18 @@ class AjaxQueue {
407
479
  if (this._options.errorRequest)
408
480
  this._options.errorRequest(task.request, reason);
409
481
  })
410
- .finally(() => this.__next());
482
+ .finally(() => this.__next(task));
411
483
  }
412
484
  }
413
- __next() {
485
+ // completedTask is the task that finished — if _current already changed
486
+ // (e.g. reset(true) was called and a new push() started a new task), bail out
487
+ // to avoid clearing the new task's reference or double-executing the queue.
488
+ __next(completedTask) {
414
489
  if (this._destroyed)
415
490
  return;
416
- this._curent = null;
491
+ if (this._current !== completedTask)
492
+ return;
493
+ this._current = null;
417
494
  this.__execute();
418
495
  }
419
496
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../source/helpers.ts","../../source/internals.ts","../../source/request.ts","../../source/ajax-request.ts","../../source/ajax-queue.ts"],"sourcesContent":[null,null,null,null,null],"names":["helpers.encodeForm","helpers.addQuery"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../source/helpers.ts","../../source/internals.ts","../../source/request.ts","../../source/ajax-request.ts","../../source/queue.ts"],"sourcesContent":[null,null,null,null,null],"names":["helpers.encodeForm","helpers.addQuery"],"mappings":"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"}
package/dist/mjs/index.js CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Builds a `URLSearchParams` from query data or a `FormData`.
3
+ *
4
+ * Array values produce repeated keys; `null` values are skipped.
5
+ *
6
+ * @param query Source parameters.
7
+ * @returns The populated `URLSearchParams` (empty when `query` is nullish).
8
+ */
1
9
  const createQuery = (query) => {
2
10
  const urlParams = new URLSearchParams();
3
11
  if (!query)
@@ -22,6 +30,13 @@ const createQuery = (query) => {
22
30
  }
23
31
  return urlParams;
24
32
  };
33
+ /**
34
+ * Appends query parameters to a URL, choosing `?` or `&` as appropriate.
35
+ *
36
+ * @param url Base URL.
37
+ * @param query Parameters to append; nothing is added when empty.
38
+ * @returns The resulting URL.
39
+ */
25
40
  const addQuery = (url, query) => {
26
41
  if (query) {
27
42
  const urlParams = createQuery(query);
@@ -35,6 +50,12 @@ const addQuery = (url, query) => {
35
50
  }
36
51
  return url;
37
52
  };
53
+ /**
54
+ * Encodes a `FormData` as an `application/x-www-form-urlencoded` string.
55
+ *
56
+ * @param data Form data to encode.
57
+ * @returns The URL-encoded form string.
58
+ */
38
59
  const encodeForm = (data) => {
39
60
  const query = createQuery(data);
40
61
  return query.toString();
@@ -56,7 +77,7 @@ const detectRequestType = (options) => {
56
77
  if (body instanceof Blob)
57
78
  options.type = "BLOB";
58
79
  else if (body instanceof FormData)
59
- options.type = null;
80
+ options.type = "FORMDATA";
60
81
  else if (body instanceof HTMLFormElement)
61
82
  options.type = "FORM";
62
83
  else if (body instanceof Object)
@@ -89,15 +110,13 @@ const prepareRequest = (options, body) => {
89
110
  body = JSON.stringify(body);
90
111
  break;
91
112
  case "FORM":
92
- if (body instanceof HTMLFormElement) {
113
+ // Convert HTMLFormElement to FormData first, then URL-encode both paths
114
+ if (body instanceof HTMLFormElement)
93
115
  body = new FormData(body);
94
- }
95
- else if (body instanceof FormData)
96
- contentType = FORM_URL;
97
- if (contentType == FORM_URL)
116
+ if (body instanceof FormData) {
98
117
  body = encodeForm(body);
99
- else if (contentType == FORM_DATA)
100
- contentType = null;
118
+ contentType = FORM_URL;
119
+ }
101
120
  break;
102
121
  case "FORMDATA":
103
122
  break;
@@ -123,7 +142,19 @@ var internals = {
123
142
  prepareRequest
124
143
  };
125
144
 
126
- /** Request with fetch. */
145
+ /**
146
+ * Performs an AJAX request using the Fetch API.
147
+ *
148
+ * The response body is parsed according to its `Content-Type`: JSON, `text/html`,
149
+ * `text/plain`, otherwise a `Blob`. `disableCache` maps to `cache: "no-store"`.
150
+ * The request is aborted when its `timeout` elapses (defaults to 30000 ms), or when
151
+ * `options.abort` or the `abortSignal` argument signals.
152
+ *
153
+ * @param options Request options. `GET`/`HEAD` requests must not carry `data`.
154
+ * @param abortSignal Optional additional signal used to cancel the request.
155
+ * @returns The parsed response. `options.success` is also invoked before resolving.
156
+ * @throws On network/abort/timeout errors, or for unsupported (opaque) response types; `options.error` is invoked before re-throwing.
157
+ */
127
158
  async function request(options, abortSignal) {
128
159
  let { mode, credentials = "include" } = options;
129
160
  let url = options.url || location.href;
@@ -131,7 +162,7 @@ async function request(options, abortSignal) {
131
162
  const method = options.method ? options.method.toUpperCase() : "GET";
132
163
  let body = options.data;
133
164
  if (body && (method === "GET" || method === "HEAD"))
134
- throw new Error("GET method is not support request with data.");
165
+ throw new Error(`${method} method does not support a request body.`);
135
166
  internals.detectRequestType(options);
136
167
  const prepared = internals.prepareRequest(options, body);
137
168
  const abortSignals = [AbortSignal.timeout(options.timeout ?? internals.DEFAULT_TIMEOUT)];
@@ -143,7 +174,7 @@ async function request(options, abortSignal) {
143
174
  const response = await fetch(url, {
144
175
  method,
145
176
  headers: new Headers(prepared.headers),
146
- cache: options.disableCache ? "no-cache" : "default",
177
+ cache: options.disableCache ? "no-store" : "default",
147
178
  mode,
148
179
  credentials,
149
180
  redirect: "follow",
@@ -212,7 +243,18 @@ async function request(options, abortSignal) {
212
243
  }
213
244
  }
214
245
 
215
- /** Request with XMLHttpRequest. */
246
+ /**
247
+ * Performs an AJAX request using `XMLHttpRequest`, always with credentials.
248
+ *
249
+ * The response body is parsed by `Content-Type` into JSON, `text/plain` or `text/html`;
250
+ * unlike the fetch-based {@link request}, there is no `blob` response type. `disableCache`
251
+ * appends a `_=<timestamp>` cache-busting query parameter (rather than `cache: "no-store"`).
252
+ * Results and errors are delivered through `options.success` / `options.error`; this
253
+ * function does not return a promise.
254
+ *
255
+ * @param options Request options. `GET` requests must not carry `data`. `timeout` of `0` disables the timeout.
256
+ * @returns The underlying `XMLHttpRequest`, which can be used to `abort()` the request.
257
+ */
216
258
  const ajaxRequest = (options) => {
217
259
  let url = options.url || location.href;
218
260
  let { query } = options;
@@ -223,8 +265,8 @@ const ajaxRequest = (options) => {
223
265
  }
224
266
  url = addQuery(url, query);
225
267
  const method = options.method ? options.method.toUpperCase() : "GET";
226
- if (options.data && method === "GET")
227
- throw new Error("GET method is not support request with data.");
268
+ if (options.data && (method === "GET" || method === "HEAD"))
269
+ throw new Error(`${method} method does not support a request body.`);
228
270
  internals.detectRequestType(options);
229
271
  const prepared = internals.prepareRequest(options, options.data);
230
272
  const xhr = new XMLHttpRequest();
@@ -232,82 +274,77 @@ const ajaxRequest = (options) => {
232
274
  if (options.timeout === 0 || options.timeout)
233
275
  xhr.timeout = options.timeout;
234
276
  xhr.onreadystatechange = (_e) => {
235
- switch (xhr.readyState) {
236
- case XMLHttpRequest.DONE: {
237
- if (options.success) {
238
- let responseData = null;
239
- let responseType = "none";
240
- const contentType = xhr.getResponseHeader("Content-Type");
241
- if (xhr.response) {
242
- if (contentType) {
243
- if (contentType.includes("json")) {
244
- responseType = "json";
245
- try {
246
- responseData = JSON.parse(xhr.responseText);
247
- }
248
- catch (e) {
249
- if (options.error)
250
- options.error(options, e);
251
- break;
252
- }
253
- }
254
- else if (contentType.includes("text/plain")) {
255
- responseType = "text";
256
- responseData = xhr.responseText;
257
- }
258
- else if (contentType.includes("text/html")) {
259
- responseType = "html";
260
- responseData = xhr.responseText;
261
- }
262
- }
277
+ if (xhr.readyState !== XMLHttpRequest.DONE)
278
+ return;
279
+ if (options.success) {
280
+ let responseData = null;
281
+ let responseType = "none";
282
+ const contentType = xhr.getResponseHeader("Content-Type");
283
+ if (xhr.response && contentType) {
284
+ if (contentType.includes("json")) {
285
+ responseType = "json";
286
+ try {
287
+ responseData = JSON.parse(xhr.responseText);
288
+ }
289
+ catch (e) {
290
+ if (options.error)
291
+ options.error(options, e);
292
+ return;
263
293
  }
264
- const headers = {
265
- get(name) {
266
- return xhr.getResponseHeader(name);
267
- },
268
- has(name) {
269
- return !!xhr.getResponseHeader(name);
270
- },
271
- forEach(callbackfn, thisArg) {
272
- const headers = xhr.getAllResponseHeaders();
273
- // Convert the header string into an array
274
- // of individual headers
275
- const arr = headers.trim().split(/[\r\n]+/);
276
- // Create a map of header names to values
277
- arr.forEach((line) => {
278
- const parts = line.split(": ");
279
- const header = parts.shift() || "";
280
- const value = parts.join(": ");
281
- callbackfn.call(thisArg, value, header.toLowerCase(), {});
282
- });
283
- }
284
- };
285
- options.success({
286
- status: xhr.status,
287
- url: xhr.responseURL,
288
- redirected: false,
289
- type: responseType,
290
- contentType,
291
- headers,
292
- data: responseData,
293
- state: options.state
294
- });
295
294
  }
296
- break;
295
+ else if (contentType.includes("text/plain")) {
296
+ responseType = "text";
297
+ responseData = xhr.responseText;
298
+ }
299
+ else if (contentType.includes("text/html")) {
300
+ responseType = "html";
301
+ responseData = xhr.responseText;
302
+ }
297
303
  }
304
+ const xhrRef = xhr;
305
+ const headers = {
306
+ get(name) {
307
+ return xhrRef.getResponseHeader(name);
308
+ },
309
+ has(name) {
310
+ return !!xhrRef.getResponseHeader(name);
311
+ },
312
+ forEach(callbackfn, thisArg) {
313
+ xhrRef.getAllResponseHeaders()
314
+ .trim()
315
+ .split(/[\r\n]+/)
316
+ .filter(Boolean)
317
+ .forEach(line => {
318
+ const idx = line.indexOf(": ");
319
+ const key = idx >= 0 ? line.substring(0, idx).toLowerCase() : line.toLowerCase();
320
+ const value = idx >= 0 ? line.substring(idx + 2) : "";
321
+ callbackfn.call(thisArg, value, key, {});
322
+ });
323
+ }
324
+ };
325
+ options.success({
326
+ status: xhr.status,
327
+ url: xhr.responseURL,
328
+ redirected: false,
329
+ type: responseType,
330
+ contentType,
331
+ headers,
332
+ data: responseData,
333
+ state: options.state
334
+ });
298
335
  }
299
336
  };
300
337
  xhr.onabort = (_e) => {
301
338
  if (options.error)
302
- options.error(options, "Request aborted");
339
+ options.error(options, new Error("Request aborted"));
303
340
  };
304
341
  xhr.onerror = (_e) => {
305
342
  if (options.error)
306
- options.error(options, "Request network error");
343
+ options.error(options, new Error("Request network error"));
307
344
  };
308
345
  xhr.ontimeout = (_e) => {
309
346
  if (options.error)
310
- options.error(options, "Request timeout");
347
+ options.error(options, new Error("Request timeout"));
311
348
  };
312
349
  xhr.open(method, url, true);
313
350
  xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
@@ -324,25 +361,47 @@ const ajaxRequest = (options) => {
324
361
  return xhr;
325
362
  };
326
363
 
364
+ /** Queue that executes AJAX requests one at a time, in the order they were added. */
327
365
  class AjaxQueue {
328
366
  _options;
329
367
  _requests = [];
330
- _curent = null;
368
+ _current = null;
331
369
  _destroyed = false;
370
+ /** @param options Optional queue-wide hooks. */
332
371
  constructor(options) {
333
372
  this._options = options ?? {};
334
373
  }
374
+ /** Number of requests waiting in the queue (excluding the one currently executing). */
335
375
  get length() { return this._requests.length; }
336
- get isFree() { return !this._requests.length && !this._curent; }
376
+ /** `true` when nothing is queued and no request is currently executing. */
377
+ get isFree() { return !this._requests.length && !this._current; }
378
+ /** `true` when no requests are waiting in the queue (a request may still be executing). */
337
379
  get isEmpty() { return !this._requests.length; }
380
+ /**
381
+ * Adds a request to the queue. Starts executing immediately if the queue is idle.
382
+ *
383
+ * @param request Request options; its `success`/`error` callbacks are invoked as usual.
384
+ * @param abortSignal Optional signal used to cancel this specific request.
385
+ * @throws If the queue has been destroyed.
386
+ */
338
387
  push(request, abortSignal) {
339
388
  if (this._destroyed)
340
389
  throw new Error("AjaxQueue is destroyed.");
341
- this._requests.push({ request, cancel: abortSignal, abort: new AbortController() });
342
- if (!this._curent)
390
+ this._requests.push({ request, cancel: abortSignal });
391
+ if (!this._current)
343
392
  this.__execute();
344
393
  }
345
- enque(request, abortSignal) {
394
+ /**
395
+ * Adds a request to the queue and returns a promise for its response.
396
+ *
397
+ * Wraps {@link push}; the request's own `success`/`error` callbacks are still invoked,
398
+ * then the promise resolves with the response or rejects with the failure reason.
399
+ *
400
+ * @param request Request options.
401
+ * @param abortSignal Optional signal used to cancel this specific request.
402
+ * @returns A promise resolving with the {@link AjaxResponse}.
403
+ */
404
+ enqueue(request, abortSignal) {
346
405
  const { success, error } = request;
347
406
  return new Promise((resolve, reject) => {
348
407
  request.success = (response) => {
@@ -358,36 +417,49 @@ class AjaxQueue {
358
417
  this.push(request, abortSignal);
359
418
  });
360
419
  }
420
+ /** @deprecated Renamed to {@link enqueue}. */
421
+ enque(request, abortSignal) {
422
+ return this.enqueue(request, abortSignal);
423
+ }
424
+ /**
425
+ * Clears all queued (not-yet-started) requests.
426
+ *
427
+ * @param cancelCurrentRequest When `true`, also aborts the request currently executing.
428
+ */
361
429
  reset(cancelCurrentRequest = false) {
362
430
  this._requests = [];
363
- const current = this._curent;
364
- this._curent = null;
431
+ const current = this._current;
432
+ this._current = null;
365
433
  if (cancelCurrentRequest && current)
366
434
  current.abort?.abort("ResetAjaxQueue");
367
435
  }
436
+ /** Destroys the queue: clears pending requests and aborts the current one. Subsequent {@link push} calls throw. */
368
437
  destroy() {
369
438
  if (this._destroyed)
370
439
  return;
371
440
  this._destroyed = true;
372
441
  this._requests = [];
373
- if (this._curent) {
374
- this._curent.abort?.abort("DestroyAjaxQueue");
375
- this._curent = null;
442
+ if (this._current) {
443
+ this._current.abort?.abort("DestroyAjaxQueue");
444
+ this._current = null;
376
445
  }
377
446
  }
378
447
  __execute() {
379
448
  if (this._destroyed)
380
449
  return;
381
- if (this._curent)
450
+ if (this._current)
382
451
  throw new Error("AjaxQueue currently is executing.");
383
- const task = this._curent = this._requests.shift() ?? null;
452
+ const task = this._current = this._requests.shift() ?? null;
384
453
  if (task) {
385
454
  if (this._options.canRequest && this._options.canRequest(task.request) === false) {
386
- this.__next();
455
+ this.__next(task);
387
456
  return;
388
457
  }
389
- if (task.request.abort?.aborted || task.cancel?.aborted)
390
- task.result = Promise.reject("cancelled");
458
+ if (task.request.abort?.aborted || task.cancel?.aborted) {
459
+ const err = new Error("Request cancelled");
460
+ task.request.error?.(task.request, err);
461
+ task.result = Promise.reject(err);
462
+ }
391
463
  else {
392
464
  task.abort = new AbortController();
393
465
  task.result = request(task.request, task.cancel ? AbortSignal.any([task.abort.signal, task.cancel]) : task.abort.signal);
@@ -405,13 +477,18 @@ class AjaxQueue {
405
477
  if (this._options.errorRequest)
406
478
  this._options.errorRequest(task.request, reason);
407
479
  })
408
- .finally(() => this.__next());
480
+ .finally(() => this.__next(task));
409
481
  }
410
482
  }
411
- __next() {
483
+ // completedTask is the task that finished — if _current already changed
484
+ // (e.g. reset(true) was called and a new push() started a new task), bail out
485
+ // to avoid clearing the new task's reference or double-executing the queue.
486
+ __next(completedTask) {
412
487
  if (this._destroyed)
413
488
  return;
414
- this._curent = null;
489
+ if (this._current !== completedTask)
490
+ return;
491
+ this._current = null;
415
492
  this.__execute();
416
493
  }
417
494
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../source/helpers.ts","../../source/internals.ts","../../source/request.ts","../../source/ajax-request.ts","../../source/ajax-queue.ts"],"sourcesContent":[null,null,null,null,null],"names":["helpers.encodeForm","helpers.addQuery"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../source/helpers.ts","../../source/internals.ts","../../source/request.ts","../../source/ajax-request.ts","../../source/queue.ts"],"sourcesContent":[null,null,null,null,null],"names":["helpers.encodeForm","helpers.addQuery"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,75 +1,189 @@
1
+ /** HTTP method for an AJAX request. Common verbs are suggested, but any custom string is allowed. */
1
2
  type AJAXMethod = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | string;
2
- type AJAXReqestType = "NONE" | "JSON" | "XML" | "FORM" | "FORMDATA" | "TEXT" | "BLOB";
3
+ /** Request body kind. Controls the `Content-Type`/`Accept` headers and how `data` is serialized. When omitted it is auto-detected from `data`. */
4
+ type AJAXRequestType = "NONE" | "JSON" | "XML" | "FORM" | "FORMDATA" | "TEXT" | "BLOB";
5
+ /** @deprecated Renamed to {@link AJAXRequestType}. */
6
+ type AJAXReqestType = AJAXRequestType;
7
+ /** Resolved kind of the response body, derived from the response `Content-Type`. `"blob"` only occurs for the fetch-based {@link request}; `ajaxRequest` (XHR) never returns blob. */
3
8
  type ResponseType = "none" | "json" | "blob" | "text" | "html";
9
+ /** Callback invoked with the parsed response on success. */
4
10
  type ResponseDelegate = (response: AjaxResponse) => void;
11
+ /** Callback invoked when a request fails or is aborted. `reason` is the thrown error or an abort/timeout message. */
5
12
  type ErrorDelegate = (request: AjaxRequest, reason?: any) => void;
13
+ /** Query string parameters. Each value may be a single string or an array (repeated key). */
6
14
  type QueryData = {
7
15
  [key: string]: string | string[];
8
16
  };
17
+ /** Options describing an AJAX request. */
9
18
  interface AjaxRequest<TState = any> {
19
+ /** Target URL. Defaults to the current `location.href` when omitted. */
10
20
  url?: string | null;
21
+ /** Query string parameters appended to the URL. */
11
22
  query?: QueryData | null;
23
+ /** HTTP method. Defaults to `"GET"`; normalized to upper-case. */
12
24
  method?: AJAXMethod | null;
25
+ /** Fetch request mode (e.g. `"cors"`). Only honored by the fetch-based {@link request}. */
13
26
  mode?: RequestMode;
27
+ /** Fetch credentials policy. Defaults to `"include"` in {@link request}; XHR always sends credentials. */
14
28
  credentials?: RequestCredentials;
29
+ /** Timeout in milliseconds. {@link request} defaults to 30000 ms when omitted; `0` disables the XHR timeout. */
15
30
  timeout?: number | null;
31
+ /** Additional request headers. Entries with empty values are skipped. */
16
32
  headers?: {
17
33
  [key: string]: string;
18
34
  } | null;
19
- type?: AJAXReqestType | null;
35
+ /** Body serialization kind. Auto-detected from `data` when omitted. */
36
+ type?: AJAXRequestType | null;
37
+ /** Request body. Not allowed for `GET` (and `HEAD` in {@link request}). */
20
38
  data?: string | object | Blob | FormData | HTMLFormElement | null;
39
+ /** Signal used to abort the request. */
21
40
  abort?: AbortSignal;
41
+ /** Called with the response on success. */
22
42
  success?: ResponseDelegate | null;
43
+ /** Called on failure, abort or timeout. */
23
44
  error?: ErrorDelegate | null;
45
+ /** When `true`, bypasses caching. {@link request} sends `cache: "no-store"`; `ajaxRequest` appends a `_=<timestamp>` cache-busting query param. */
24
46
  disableCache?: boolean | null;
47
+ /** Arbitrary state passed through to the response unchanged. */
25
48
  state?: TState | null;
26
49
  }
50
+ /** Parsed result of an AJAX request. */
27
51
  interface AjaxResponse<TData = any, TState = any> {
52
+ /** HTTP status code. */
28
53
  status: number;
54
+ /** Whether the request was redirected. Always `false` for `ajaxRequest` (XHR). */
29
55
  redirected: boolean;
56
+ /** Final response URL. */
30
57
  url: string | null;
58
+ /** Resolved body kind derived from the response `Content-Type`. */
31
59
  type: ResponseType;
60
+ /** Raw `Content-Type` header value. */
32
61
  contentType: string | null;
62
+ /** Accessor over the response headers. */
33
63
  headers: ResponseHeaders;
64
+ /** Parsed response body, or `null` when there is no body. */
34
65
  data: TData | null;
66
+ /** State value carried over from the originating request. */
35
67
  state?: TState | null;
36
68
  }
69
+ /** Read-only accessor over response headers, mirroring a subset of the Fetch `Headers` API. */
37
70
  interface ResponseHeaders {
71
+ /** Returns the value of the given header, or `null` if absent. */
38
72
  get(name: string): string | null;
73
+ /** Returns whether the given header is present. */
39
74
  has(name: string): boolean;
75
+ /** Iterates over each header value/name pair. */
40
76
  forEach(callbackfn: (value: string, key: string, parent: ResponseHeaders) => void, thisArg?: any): void;
41
77
  }
42
78
 
43
- /** Request with fetch. */
79
+ /**
80
+ * Performs an AJAX request using the Fetch API.
81
+ *
82
+ * The response body is parsed according to its `Content-Type`: JSON, `text/html`,
83
+ * `text/plain`, otherwise a `Blob`. `disableCache` maps to `cache: "no-store"`.
84
+ * The request is aborted when its `timeout` elapses (defaults to 30000 ms), or when
85
+ * `options.abort` or the `abortSignal` argument signals.
86
+ *
87
+ * @param options Request options. `GET`/`HEAD` requests must not carry `data`.
88
+ * @param abortSignal Optional additional signal used to cancel the request.
89
+ * @returns The parsed response. `options.success` is also invoked before resolving.
90
+ * @throws On network/abort/timeout errors, or for unsupported (opaque) response types; `options.error` is invoked before re-throwing.
91
+ */
44
92
  declare function request<TData = any, TState = any>(options: AjaxRequest<TState>, abortSignal?: AbortSignal): Promise<AjaxResponse<TData, TState>>;
45
93
 
46
- /** Request with XMLHttpRequest. */
94
+ /**
95
+ * Performs an AJAX request using `XMLHttpRequest`, always with credentials.
96
+ *
97
+ * The response body is parsed by `Content-Type` into JSON, `text/plain` or `text/html`;
98
+ * unlike the fetch-based {@link request}, there is no `blob` response type. `disableCache`
99
+ * appends a `_=<timestamp>` cache-busting query parameter (rather than `cache: "no-store"`).
100
+ * Results and errors are delivered through `options.success` / `options.error`; this
101
+ * function does not return a promise.
102
+ *
103
+ * @param options Request options. `GET` requests must not carry `data`. `timeout` of `0` disables the timeout.
104
+ * @returns The underlying `XMLHttpRequest`, which can be used to `abort()` the request.
105
+ */
47
106
  declare const ajaxRequest: (options: AjaxRequest) => XMLHttpRequest;
48
107
 
108
+ /** Queue that executes AJAX requests one at a time, in the order they were added. */
49
109
  declare class AjaxQueue {
50
110
  private _options;
51
111
  private _requests;
52
- private _curent;
112
+ private _current;
53
113
  private _destroyed;
114
+ /** @param options Optional queue-wide hooks. */
54
115
  constructor(options?: AjaxQueueOptions);
116
+ /** Number of requests waiting in the queue (excluding the one currently executing). */
55
117
  get length(): number;
118
+ /** `true` when nothing is queued and no request is currently executing. */
56
119
  get isFree(): boolean;
120
+ /** `true` when no requests are waiting in the queue (a request may still be executing). */
57
121
  get isEmpty(): boolean;
122
+ /**
123
+ * Adds a request to the queue. Starts executing immediately if the queue is idle.
124
+ *
125
+ * @param request Request options; its `success`/`error` callbacks are invoked as usual.
126
+ * @param abortSignal Optional signal used to cancel this specific request.
127
+ * @throws If the queue has been destroyed.
128
+ */
58
129
  push(request: AjaxRequest, abortSignal?: AbortSignal): void;
130
+ /**
131
+ * Adds a request to the queue and returns a promise for its response.
132
+ *
133
+ * Wraps {@link push}; the request's own `success`/`error` callbacks are still invoked,
134
+ * then the promise resolves with the response or rejects with the failure reason.
135
+ *
136
+ * @param request Request options.
137
+ * @param abortSignal Optional signal used to cancel this specific request.
138
+ * @returns A promise resolving with the {@link AjaxResponse}.
139
+ */
140
+ enqueue<TResponse = any>(request: AjaxRequest, abortSignal?: AbortSignal): Promise<AjaxResponse<TResponse, any>>;
141
+ /** @deprecated Renamed to {@link enqueue}. */
59
142
  enque<TResponse = any>(request: AjaxRequest, abortSignal?: AbortSignal): Promise<AjaxResponse<TResponse, any>>;
143
+ /**
144
+ * Clears all queued (not-yet-started) requests.
145
+ *
146
+ * @param cancelCurrentRequest When `true`, also aborts the request currently executing.
147
+ */
60
148
  reset(cancelCurrentRequest?: boolean): void;
149
+ /** Destroys the queue: clears pending requests and aborts the current one. Subsequent {@link push} calls throw. */
61
150
  destroy(): void;
62
151
  private __execute;
63
152
  private __next;
64
153
  }
154
+ /** Queue-wide hooks invoked for every request processed by an {@link AjaxQueue}. */
65
155
  interface AjaxQueueOptions {
66
- canRequest?: (request: AjaxRequest) => void | boolean;
156
+ /** Called before a request is sent; returning `false` skips it (it is dropped without being sent). */
157
+ canRequest?: (request: AjaxRequest) => boolean | void;
158
+ /** Called after a request completes successfully. */
67
159
  successRequest?: (request: AjaxRequest, response: AjaxResponse) => void;
160
+ /** Called when a request fails or is aborted. */
68
161
  errorRequest?: (response: AjaxRequest, reason?: any) => void;
69
162
  }
70
163
 
164
+ /**
165
+ * Builds a `URLSearchParams` from query data or a `FormData`.
166
+ *
167
+ * Array values produce repeated keys; `null` values are skipped.
168
+ *
169
+ * @param query Source parameters.
170
+ * @returns The populated `URLSearchParams` (empty when `query` is nullish).
171
+ */
71
172
  declare const createQuery: (query?: QueryData | FormData | null) => URLSearchParams;
173
+ /**
174
+ * Appends query parameters to a URL, choosing `?` or `&` as appropriate.
175
+ *
176
+ * @param url Base URL.
177
+ * @param query Parameters to append; nothing is added when empty.
178
+ * @returns The resulting URL.
179
+ */
72
180
  declare const addQuery: (url: string, query?: QueryData | FormData | null) => string;
181
+ /**
182
+ * Encodes a `FormData` as an `application/x-www-form-urlencoded` string.
183
+ *
184
+ * @param data Form data to encode.
185
+ * @returns The URL-encoded form string.
186
+ */
73
187
  declare const encodeForm: (data: FormData) => string;
74
188
 
75
189
  declare const helpers_addQuery: typeof addQuery;
@@ -84,4 +198,4 @@ declare namespace helpers {
84
198
  }
85
199
 
86
200
  export { AjaxQueue, helpers as RequestHelper, ajaxRequest, request };
87
- export type { AJAXMethod, AJAXReqestType, AjaxQueueOptions, AjaxRequest, AjaxResponse, ErrorDelegate, QueryData, ResponseDelegate, ResponseHeaders, ResponseType };
201
+ export type { AJAXMethod, AJAXReqestType, AJAXRequestType, AjaxQueueOptions, AjaxRequest, AjaxResponse, ErrorDelegate, QueryData, ResponseDelegate, ResponseHeaders, ResponseType };
package/package.json CHANGED
@@ -21,7 +21,7 @@
21
21
  "email": "it@brandup.online"
22
22
  },
23
23
  "license": "Apache-2.0",
24
- "version": "1.0.44",
24
+ "version": "2.0.1",
25
25
  "main": "dist/cjs/index.js",
26
26
  "module": "dist/mjs/index.js",
27
27
  "types": "dist/types.d.ts",