@upyo/mailgun 0.5.0-dev.156 → 0.5.0-dev.164

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
@@ -129,7 +129,7 @@ var MailgunHttpClient = class {
129
129
  throw new MailgunApiError(lastError.message, void 0, void 0, attempt + 1);
130
130
  }
131
131
  const delay = Math.pow(2, attempt) * 1e3;
132
- await new Promise((resolve) => setTimeout(resolve, delay));
132
+ await sleep(delay, options.signal);
133
133
  }
134
134
  throw lastError || /* @__PURE__ */ new Error("Request failed after all retries");
135
135
  }
@@ -202,6 +202,24 @@ var MailgunApiError = class extends Error {
202
202
  function isAbortError$1(error) {
203
203
  return error instanceof Error && error.name === "AbortError";
204
204
  }
205
+ function sleep(milliseconds, signal) {
206
+ if (signal?.aborted) return Promise.reject(createAbortError());
207
+ return new Promise((resolve, reject) => {
208
+ function abort() {
209
+ clearTimeout(timeoutId);
210
+ signal?.removeEventListener("abort", abort);
211
+ reject(createAbortError());
212
+ }
213
+ const timeoutId = setTimeout(() => {
214
+ signal?.removeEventListener("abort", abort);
215
+ resolve();
216
+ }, milliseconds);
217
+ signal?.addEventListener("abort", abort, { once: true });
218
+ });
219
+ }
220
+ function createAbortError() {
221
+ return new DOMException("The operation was aborted.", "AbortError");
222
+ }
205
223
  function truncateErrorBody(text) {
206
224
  return text.length > 500 ? `${text.slice(0, 500)}...` : text;
207
225
  }
package/dist/index.js CHANGED
@@ -106,7 +106,7 @@ var MailgunHttpClient = class {
106
106
  throw new MailgunApiError(lastError.message, void 0, void 0, attempt + 1);
107
107
  }
108
108
  const delay = Math.pow(2, attempt) * 1e3;
109
- await new Promise((resolve) => setTimeout(resolve, delay));
109
+ await sleep(delay, options.signal);
110
110
  }
111
111
  throw lastError || /* @__PURE__ */ new Error("Request failed after all retries");
112
112
  }
@@ -179,6 +179,24 @@ var MailgunApiError = class extends Error {
179
179
  function isAbortError$1(error) {
180
180
  return error instanceof Error && error.name === "AbortError";
181
181
  }
182
+ function sleep(milliseconds, signal) {
183
+ if (signal?.aborted) return Promise.reject(createAbortError());
184
+ return new Promise((resolve, reject) => {
185
+ function abort() {
186
+ clearTimeout(timeoutId);
187
+ signal?.removeEventListener("abort", abort);
188
+ reject(createAbortError());
189
+ }
190
+ const timeoutId = setTimeout(() => {
191
+ signal?.removeEventListener("abort", abort);
192
+ resolve();
193
+ }, milliseconds);
194
+ signal?.addEventListener("abort", abort, { once: true });
195
+ });
196
+ }
197
+ function createAbortError() {
198
+ return new DOMException("The operation was aborted.", "AbortError");
199
+ }
182
200
  function truncateErrorBody(text) {
183
201
  return text.length > 500 ? `${text.slice(0, 500)}...` : text;
184
202
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@upyo/mailgun",
3
- "version": "0.5.0-dev.156",
3
+ "version": "0.5.0-dev.164",
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.156+edad9790"
56
+ "@upyo/core": "0.5.0-dev.164+5e283c64"
57
57
  },
58
58
  "devDependencies": {
59
59
  "tsdown": "^0.12.7",