@upyo/plunk 0.5.0-dev.164 → 0.5.0-dev.170

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/dist/index.cjs CHANGED
@@ -118,6 +118,7 @@ var PlunkHttpClient = class {
118
118
  const response = await this.makeRequest(url, emailData, signal);
119
119
  return await this.parseResponse(response);
120
120
  } catch (error) {
121
+ if (isCallerAbort$1(error, signal)) throw error;
121
122
  lastError = error instanceof Error ? error : new Error(String(error));
122
123
  if (error instanceof Error && error.name === "AbortError") throw error;
123
124
  if (error instanceof PlunkApiError && error.statusCode !== void 0 && error.statusCode >= 400 && error.statusCode < 500) throw new PlunkApiError(error.message, error.statusCode, error.retryAfterMilliseconds, attempt + 1);
@@ -146,19 +147,20 @@ var PlunkHttpClient = class {
146
147
  };
147
148
  const timeoutController = new AbortController();
148
149
  const timeoutId = this.config.timeout > 0 ? setTimeout(() => timeoutController.abort(), this.config.timeout) : void 0;
149
- const requestSignal = signal == null ? timeoutController.signal : AbortSignal.any([timeoutController.signal, signal]);
150
+ const combinedSignal = (0, __upyo_core.combineSignals)(timeoutController.signal, signal);
150
151
  let response;
151
152
  try {
152
153
  response = await fetch(url, {
153
154
  method: "POST",
154
155
  headers,
155
156
  body: JSON.stringify(emailData),
156
- signal: requestSignal
157
+ signal: combinedSignal.signal
157
158
  });
158
159
  } catch (error) {
159
160
  if (isAbortError$1(error) && timeoutController.signal.aborted && !signal?.aborted) throw new Error(`Plunk API request timed out after ${this.config.timeout} ms.`);
160
161
  throw error;
161
162
  } finally {
163
+ combinedSignal.cleanup();
162
164
  if (timeoutId !== void 0) clearTimeout(timeoutId);
163
165
  }
164
166
  if (!response.ok) {
@@ -203,6 +205,9 @@ var PlunkHttpClient = class {
203
205
  function isAbortError$1(error) {
204
206
  return error instanceof Error && error.name === "AbortError";
205
207
  }
208
+ function isCallerAbort$1(error, signal) {
209
+ return signal?.aborted === true && (isAbortError$1(error) || error === signal.reason);
210
+ }
206
211
  function truncateErrorBody(text) {
207
212
  return text.length > 500 ? `${text.slice(0, 500)}...` : text;
208
213
  }
@@ -398,7 +403,7 @@ var PlunkTransport = class {
398
403
  provider: "plunk"
399
404
  };
400
405
  } catch (error) {
401
- if (isAbortError(error) && options?.signal?.aborted) throw error;
406
+ if (isCallerAbort(error, options?.signal)) throw error;
402
407
  const errorMessage = error instanceof Error ? error.message : String(error);
403
408
  return createPlunkFailure(errorMessage, error);
404
409
  }
@@ -501,6 +506,9 @@ function createPlunkFailure(message, error) {
501
506
  function isAbortError(error) {
502
507
  return error instanceof Error && error.name === "AbortError";
503
508
  }
509
+ function isCallerAbort(error, signal) {
510
+ return signal?.aborted === true && (isAbortError(error) || error === signal.reason);
511
+ }
504
512
 
505
513
  //#endregion
506
514
  exports.PlunkTransport = PlunkTransport;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createFailedReceipt, parseRetryAfter } from "@upyo/core";
1
+ import { combineSignals, createFailedReceipt, parseRetryAfter } from "@upyo/core";
2
2
 
3
3
  //#region src/config.ts
4
4
  /**
@@ -95,6 +95,7 @@ var PlunkHttpClient = class {
95
95
  const response = await this.makeRequest(url, emailData, signal);
96
96
  return await this.parseResponse(response);
97
97
  } catch (error) {
98
+ if (isCallerAbort$1(error, signal)) throw error;
98
99
  lastError = error instanceof Error ? error : new Error(String(error));
99
100
  if (error instanceof Error && error.name === "AbortError") throw error;
100
101
  if (error instanceof PlunkApiError && error.statusCode !== void 0 && error.statusCode >= 400 && error.statusCode < 500) throw new PlunkApiError(error.message, error.statusCode, error.retryAfterMilliseconds, attempt + 1);
@@ -123,19 +124,20 @@ var PlunkHttpClient = class {
123
124
  };
124
125
  const timeoutController = new AbortController();
125
126
  const timeoutId = this.config.timeout > 0 ? setTimeout(() => timeoutController.abort(), this.config.timeout) : void 0;
126
- const requestSignal = signal == null ? timeoutController.signal : AbortSignal.any([timeoutController.signal, signal]);
127
+ const combinedSignal = combineSignals(timeoutController.signal, signal);
127
128
  let response;
128
129
  try {
129
130
  response = await fetch(url, {
130
131
  method: "POST",
131
132
  headers,
132
133
  body: JSON.stringify(emailData),
133
- signal: requestSignal
134
+ signal: combinedSignal.signal
134
135
  });
135
136
  } catch (error) {
136
137
  if (isAbortError$1(error) && timeoutController.signal.aborted && !signal?.aborted) throw new Error(`Plunk API request timed out after ${this.config.timeout} ms.`);
137
138
  throw error;
138
139
  } finally {
140
+ combinedSignal.cleanup();
139
141
  if (timeoutId !== void 0) clearTimeout(timeoutId);
140
142
  }
141
143
  if (!response.ok) {
@@ -180,6 +182,9 @@ var PlunkHttpClient = class {
180
182
  function isAbortError$1(error) {
181
183
  return error instanceof Error && error.name === "AbortError";
182
184
  }
185
+ function isCallerAbort$1(error, signal) {
186
+ return signal?.aborted === true && (isAbortError$1(error) || error === signal.reason);
187
+ }
183
188
  function truncateErrorBody(text) {
184
189
  return text.length > 500 ? `${text.slice(0, 500)}...` : text;
185
190
  }
@@ -375,7 +380,7 @@ var PlunkTransport = class {
375
380
  provider: "plunk"
376
381
  };
377
382
  } catch (error) {
378
- if (isAbortError(error) && options?.signal?.aborted) throw error;
383
+ if (isCallerAbort(error, options?.signal)) throw error;
379
384
  const errorMessage = error instanceof Error ? error.message : String(error);
380
385
  return createPlunkFailure(errorMessage, error);
381
386
  }
@@ -478,6 +483,9 @@ function createPlunkFailure(message, error) {
478
483
  function isAbortError(error) {
479
484
  return error instanceof Error && error.name === "AbortError";
480
485
  }
486
+ function isCallerAbort(error, signal) {
487
+ return signal?.aborted === true && (isAbortError(error) || error === signal.reason);
488
+ }
481
489
 
482
490
  //#endregion
483
491
  export { PlunkTransport };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@upyo/plunk",
3
- "version": "0.5.0-dev.164",
3
+ "version": "0.5.0-dev.170",
4
4
  "description": "Plunk transport for Upyo email library",
5
5
  "keywords": [
6
6
  "email",
@@ -53,7 +53,7 @@
53
53
  },
54
54
  "sideEffects": false,
55
55
  "peerDependencies": {
56
- "@upyo/core": "0.5.0-dev.164+5e283c64"
56
+ "@upyo/core": "0.5.0-dev.170+643994fd"
57
57
  },
58
58
  "devDependencies": {
59
59
  "tsdown": "^0.12.7",