@upyo/sendgrid 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 -7
- package/dist/index.js +12 -8
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -134,17 +134,18 @@ var SendGridHttpClient = class {
|
|
|
134
134
|
for (const [key, value] of Object.entries(this.config.headers)) headers.set(key, value);
|
|
135
135
|
const controller = new AbortController();
|
|
136
136
|
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
137
|
-
const
|
|
137
|
+
const combinedSignal = (0, __upyo_core.combineSignals)(controller.signal, options.signal);
|
|
138
138
|
try {
|
|
139
139
|
return await globalThis.fetch(url, {
|
|
140
140
|
...options,
|
|
141
141
|
headers,
|
|
142
|
-
signal
|
|
142
|
+
signal: combinedSignal.signal
|
|
143
143
|
});
|
|
144
144
|
} catch (error) {
|
|
145
145
|
if (isAbortError$1(error) && controller.signal.aborted && !options.signal?.aborted) throw new Error(`SendGrid API request timed out after ${this.config.timeout} ms.`);
|
|
146
146
|
throw error;
|
|
147
147
|
} finally {
|
|
148
|
+
combinedSignal.cleanup();
|
|
148
149
|
clearTimeout(timeoutId);
|
|
149
150
|
}
|
|
150
151
|
}
|
|
@@ -204,12 +205,12 @@ function isAbortError$1(error) {
|
|
|
204
205
|
return error instanceof Error && error.name === "AbortError";
|
|
205
206
|
}
|
|
206
207
|
function sleep(milliseconds, signal) {
|
|
207
|
-
if (signal?.aborted) return Promise.reject(createAbortError());
|
|
208
|
+
if (signal?.aborted) return Promise.reject(createAbortError(signal));
|
|
208
209
|
return new Promise((resolve, reject) => {
|
|
209
210
|
function abort() {
|
|
210
211
|
clearTimeout(timeoutId);
|
|
211
212
|
signal?.removeEventListener("abort", abort);
|
|
212
|
-
reject(createAbortError());
|
|
213
|
+
reject(createAbortError(signal));
|
|
213
214
|
}
|
|
214
215
|
const timeoutId = setTimeout(() => {
|
|
215
216
|
signal?.removeEventListener("abort", abort);
|
|
@@ -218,8 +219,8 @@ function sleep(milliseconds, signal) {
|
|
|
218
219
|
signal?.addEventListener("abort", abort, { once: true });
|
|
219
220
|
});
|
|
220
221
|
}
|
|
221
|
-
function createAbortError() {
|
|
222
|
-
return new DOMException("The operation was aborted.", "AbortError");
|
|
222
|
+
function createAbortError(signal) {
|
|
223
|
+
return signal?.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
223
224
|
}
|
|
224
225
|
|
|
225
226
|
//#endregion
|
|
@@ -452,7 +453,7 @@ var SendGridTransport = class {
|
|
|
452
453
|
provider: "sendgrid"
|
|
453
454
|
};
|
|
454
455
|
} catch (error) {
|
|
455
|
-
if (
|
|
456
|
+
if (isCallerAbort(error, options?.signal)) throw error;
|
|
456
457
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
457
458
|
return createSendGridFailure(errorMessage, error);
|
|
458
459
|
}
|
|
@@ -548,6 +549,9 @@ function createSendGridFailure(message, error) {
|
|
|
548
549
|
});
|
|
549
550
|
return (0, __upyo_core.createFailedReceipt)(message, { provider: "sendgrid" });
|
|
550
551
|
}
|
|
552
|
+
function isCallerAbort(error, signal) {
|
|
553
|
+
return signal?.aborted === true && (isAbortError(error) || error === signal.reason);
|
|
554
|
+
}
|
|
551
555
|
function isAbortError(error) {
|
|
552
556
|
return error instanceof Error && error.name === "AbortError";
|
|
553
557
|
}
|
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
|
/**
|
|
@@ -111,17 +111,18 @@ var SendGridHttpClient = class {
|
|
|
111
111
|
for (const [key, value] of Object.entries(this.config.headers)) headers.set(key, value);
|
|
112
112
|
const controller = new AbortController();
|
|
113
113
|
const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
|
|
114
|
-
const
|
|
114
|
+
const combinedSignal = combineSignals(controller.signal, options.signal);
|
|
115
115
|
try {
|
|
116
116
|
return await globalThis.fetch(url, {
|
|
117
117
|
...options,
|
|
118
118
|
headers,
|
|
119
|
-
signal
|
|
119
|
+
signal: combinedSignal.signal
|
|
120
120
|
});
|
|
121
121
|
} catch (error) {
|
|
122
122
|
if (isAbortError$1(error) && controller.signal.aborted && !options.signal?.aborted) throw new Error(`SendGrid API request timed out after ${this.config.timeout} ms.`);
|
|
123
123
|
throw error;
|
|
124
124
|
} finally {
|
|
125
|
+
combinedSignal.cleanup();
|
|
125
126
|
clearTimeout(timeoutId);
|
|
126
127
|
}
|
|
127
128
|
}
|
|
@@ -181,12 +182,12 @@ function isAbortError$1(error) {
|
|
|
181
182
|
return error instanceof Error && error.name === "AbortError";
|
|
182
183
|
}
|
|
183
184
|
function sleep(milliseconds, signal) {
|
|
184
|
-
if (signal?.aborted) return Promise.reject(createAbortError());
|
|
185
|
+
if (signal?.aborted) return Promise.reject(createAbortError(signal));
|
|
185
186
|
return new Promise((resolve, reject) => {
|
|
186
187
|
function abort() {
|
|
187
188
|
clearTimeout(timeoutId);
|
|
188
189
|
signal?.removeEventListener("abort", abort);
|
|
189
|
-
reject(createAbortError());
|
|
190
|
+
reject(createAbortError(signal));
|
|
190
191
|
}
|
|
191
192
|
const timeoutId = setTimeout(() => {
|
|
192
193
|
signal?.removeEventListener("abort", abort);
|
|
@@ -195,8 +196,8 @@ function sleep(milliseconds, signal) {
|
|
|
195
196
|
signal?.addEventListener("abort", abort, { once: true });
|
|
196
197
|
});
|
|
197
198
|
}
|
|
198
|
-
function createAbortError() {
|
|
199
|
-
return new DOMException("The operation was aborted.", "AbortError");
|
|
199
|
+
function createAbortError(signal) {
|
|
200
|
+
return signal?.reason ?? new DOMException("The operation was aborted.", "AbortError");
|
|
200
201
|
}
|
|
201
202
|
|
|
202
203
|
//#endregion
|
|
@@ -429,7 +430,7 @@ var SendGridTransport = class {
|
|
|
429
430
|
provider: "sendgrid"
|
|
430
431
|
};
|
|
431
432
|
} catch (error) {
|
|
432
|
-
if (
|
|
433
|
+
if (isCallerAbort(error, options?.signal)) throw error;
|
|
433
434
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
434
435
|
return createSendGridFailure(errorMessage, error);
|
|
435
436
|
}
|
|
@@ -525,6 +526,9 @@ function createSendGridFailure(message, error) {
|
|
|
525
526
|
});
|
|
526
527
|
return createFailedReceipt(message, { provider: "sendgrid" });
|
|
527
528
|
}
|
|
529
|
+
function isCallerAbort(error, signal) {
|
|
530
|
+
return signal?.aborted === true && (isAbortError(error) || error === signal.reason);
|
|
531
|
+
}
|
|
528
532
|
function isAbortError(error) {
|
|
529
533
|
return error instanceof Error && error.name === "AbortError";
|
|
530
534
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@upyo/sendgrid",
|
|
3
|
-
"version": "0.5.0-dev.
|
|
3
|
+
"version": "0.5.0-dev.170",
|
|
4
4
|
"description": "SendGrid 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",
|