@upyo/mailgun 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 +11 -8
- package/dist/index.js +12 -9
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -149,18 +149,18 @@ var MailgunHttpClient = class {
|
|
|
149
149
|
for (const [key, value] of Object.entries(this.config.headers)) headers.set(key, value);
|
|
150
150
|
const controller = new AbortController();
|
|
151
151
|
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
152
|
-
|
|
153
|
-
if (options.signal) signal = AbortSignal.any([controller.signal, options.signal]);
|
|
152
|
+
const combinedSignal = (0, __upyo_core.combineSignals)(controller.signal, options.signal);
|
|
154
153
|
try {
|
|
155
154
|
return await globalThis.fetch(url, {
|
|
156
155
|
...options,
|
|
157
156
|
headers,
|
|
158
|
-
signal
|
|
157
|
+
signal: combinedSignal.signal
|
|
159
158
|
});
|
|
160
159
|
} catch (error) {
|
|
161
160
|
if (isAbortError$1(error) && controller.signal.aborted && !options.signal?.aborted) throw new Error(`Mailgun API request timed out after ${this.config.timeout} ms.`);
|
|
162
161
|
throw error;
|
|
163
162
|
} finally {
|
|
163
|
+
combinedSignal.cleanup();
|
|
164
164
|
clearTimeout(timeoutId);
|
|
165
165
|
}
|
|
166
166
|
}
|
|
@@ -203,12 +203,12 @@ function isAbortError$1(error) {
|
|
|
203
203
|
return error instanceof Error && error.name === "AbortError";
|
|
204
204
|
}
|
|
205
205
|
function sleep(milliseconds, signal) {
|
|
206
|
-
if (signal?.aborted) return Promise.reject(createAbortError());
|
|
206
|
+
if (signal?.aborted) return Promise.reject(createAbortError(signal));
|
|
207
207
|
return new Promise((resolve, reject) => {
|
|
208
208
|
function abort() {
|
|
209
209
|
clearTimeout(timeoutId);
|
|
210
210
|
signal?.removeEventListener("abort", abort);
|
|
211
|
-
reject(createAbortError());
|
|
211
|
+
reject(createAbortError(signal));
|
|
212
212
|
}
|
|
213
213
|
const timeoutId = setTimeout(() => {
|
|
214
214
|
signal?.removeEventListener("abort", abort);
|
|
@@ -217,8 +217,8 @@ function sleep(milliseconds, signal) {
|
|
|
217
217
|
signal?.addEventListener("abort", abort, { once: true });
|
|
218
218
|
});
|
|
219
219
|
}
|
|
220
|
-
function createAbortError() {
|
|
221
|
-
return new DOMException("The operation was aborted.", "AbortError");
|
|
220
|
+
function createAbortError(signal) {
|
|
221
|
+
return signal?.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
222
222
|
}
|
|
223
223
|
function truncateErrorBody(text) {
|
|
224
224
|
return text.length > 500 ? `${text.slice(0, 500)}...` : text;
|
|
@@ -409,7 +409,7 @@ var MailgunTransport = class {
|
|
|
409
409
|
provider: "mailgun"
|
|
410
410
|
};
|
|
411
411
|
} catch (error) {
|
|
412
|
-
if (
|
|
412
|
+
if (isCallerAbort(error, options?.signal)) throw error;
|
|
413
413
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
414
414
|
return createMailgunFailure(errorMessage, error);
|
|
415
415
|
}
|
|
@@ -488,6 +488,9 @@ function createMailgunFailure(message, error) {
|
|
|
488
488
|
});
|
|
489
489
|
return (0, __upyo_core.createFailedReceipt)(message, { provider: "mailgun" });
|
|
490
490
|
}
|
|
491
|
+
function isCallerAbort(error, signal) {
|
|
492
|
+
return signal?.aborted === true && (isAbortError(error) || error === signal.reason);
|
|
493
|
+
}
|
|
491
494
|
function isAbortError(error) {
|
|
492
495
|
return error instanceof Error && error.name === "AbortError";
|
|
493
496
|
}
|
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
|
/**
|
|
@@ -126,18 +126,18 @@ var MailgunHttpClient = class {
|
|
|
126
126
|
for (const [key, value] of Object.entries(this.config.headers)) headers.set(key, value);
|
|
127
127
|
const controller = new AbortController();
|
|
128
128
|
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
129
|
-
|
|
130
|
-
if (options.signal) signal = AbortSignal.any([controller.signal, options.signal]);
|
|
129
|
+
const combinedSignal = combineSignals(controller.signal, options.signal);
|
|
131
130
|
try {
|
|
132
131
|
return await globalThis.fetch(url, {
|
|
133
132
|
...options,
|
|
134
133
|
headers,
|
|
135
|
-
signal
|
|
134
|
+
signal: combinedSignal.signal
|
|
136
135
|
});
|
|
137
136
|
} catch (error) {
|
|
138
137
|
if (isAbortError$1(error) && controller.signal.aborted && !options.signal?.aborted) throw new Error(`Mailgun API request timed out after ${this.config.timeout} ms.`);
|
|
139
138
|
throw error;
|
|
140
139
|
} finally {
|
|
140
|
+
combinedSignal.cleanup();
|
|
141
141
|
clearTimeout(timeoutId);
|
|
142
142
|
}
|
|
143
143
|
}
|
|
@@ -180,12 +180,12 @@ function isAbortError$1(error) {
|
|
|
180
180
|
return error instanceof Error && error.name === "AbortError";
|
|
181
181
|
}
|
|
182
182
|
function sleep(milliseconds, signal) {
|
|
183
|
-
if (signal?.aborted) return Promise.reject(createAbortError());
|
|
183
|
+
if (signal?.aborted) return Promise.reject(createAbortError(signal));
|
|
184
184
|
return new Promise((resolve, reject) => {
|
|
185
185
|
function abort() {
|
|
186
186
|
clearTimeout(timeoutId);
|
|
187
187
|
signal?.removeEventListener("abort", abort);
|
|
188
|
-
reject(createAbortError());
|
|
188
|
+
reject(createAbortError(signal));
|
|
189
189
|
}
|
|
190
190
|
const timeoutId = setTimeout(() => {
|
|
191
191
|
signal?.removeEventListener("abort", abort);
|
|
@@ -194,8 +194,8 @@ function sleep(milliseconds, signal) {
|
|
|
194
194
|
signal?.addEventListener("abort", abort, { once: true });
|
|
195
195
|
});
|
|
196
196
|
}
|
|
197
|
-
function createAbortError() {
|
|
198
|
-
return new DOMException("The operation was aborted.", "AbortError");
|
|
197
|
+
function createAbortError(signal) {
|
|
198
|
+
return signal?.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
199
199
|
}
|
|
200
200
|
function truncateErrorBody(text) {
|
|
201
201
|
return text.length > 500 ? `${text.slice(0, 500)}...` : text;
|
|
@@ -386,7 +386,7 @@ var MailgunTransport = class {
|
|
|
386
386
|
provider: "mailgun"
|
|
387
387
|
};
|
|
388
388
|
} catch (error) {
|
|
389
|
-
if (
|
|
389
|
+
if (isCallerAbort(error, options?.signal)) throw error;
|
|
390
390
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
391
391
|
return createMailgunFailure(errorMessage, error);
|
|
392
392
|
}
|
|
@@ -465,6 +465,9 @@ function createMailgunFailure(message, error) {
|
|
|
465
465
|
});
|
|
466
466
|
return createFailedReceipt(message, { provider: "mailgun" });
|
|
467
467
|
}
|
|
468
|
+
function isCallerAbort(error, signal) {
|
|
469
|
+
return signal?.aborted === true && (isAbortError(error) || error === signal.reason);
|
|
470
|
+
}
|
|
468
471
|
function isAbortError(error) {
|
|
469
472
|
return error instanceof Error && error.name === "AbortError";
|
|
470
473
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@upyo/mailgun",
|
|
3
|
-
"version": "0.5.0-dev.
|
|
3
|
+
"version": "0.5.0-dev.170",
|
|
4
4
|
"description": "Mailgun 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.
|
|
56
|
+
"@upyo/core": "0.5.0-dev.170+643994fd"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"tsdown": "^0.12.7",
|