svix 1.77.0 → 1.79.0
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.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/request.d.ts +2 -1
- package/dist/request.js +5 -5
- package/dist/request.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +8 -0
- package/src/mockttp.test.ts +18 -0
- package/src/request.ts +11 -3
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -58,6 +58,7 @@ class Svix {
|
|
|
58
58
|
token,
|
|
59
59
|
timeout: options.requestTimeout,
|
|
60
60
|
retryScheduleInMs: options.retryScheduleInMs,
|
|
61
|
+
fetch: options.fetch,
|
|
61
62
|
};
|
|
62
63
|
return;
|
|
63
64
|
}
|
|
@@ -67,6 +68,7 @@ class Svix {
|
|
|
67
68
|
token,
|
|
68
69
|
timeout: options.requestTimeout,
|
|
69
70
|
numRetries: options.numRetries,
|
|
71
|
+
fetch: options.fetch,
|
|
70
72
|
};
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
@@ -74,6 +76,7 @@ class Svix {
|
|
|
74
76
|
baseUrl,
|
|
75
77
|
token,
|
|
76
78
|
timeout: options.requestTimeout,
|
|
79
|
+
fetch: options.fetch,
|
|
77
80
|
};
|
|
78
81
|
}
|
|
79
82
|
get application() {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,mDAAgD;AAChD,yDAAsD;AACtD,yDAAsD;AACtD,6CAA0C;AAC1C,mDAAgD;AAChD,+CAA4C;AAC5C,yCAAsC;AACtC,yCAAsC;AACtC,mDAAgD;AAChD,2CAAwC;AACxC,yDAAsD;AACtD,iEAA8D;AAC9D,iDAA8C;AAC9C,+CAA4C;AAC5C,iFAA8E;AAG9E,+BAAmD;AAA7B,oGAAA,YAAY,OAAA;AAClC,2CAAkF;AAAzE,iHAAA,mBAAmB,OAAA;AAAE,0GAAA,YAAY,OAAA;AAAE,6GAAA,eAAe,OAAA;AAC3D,4CAA0B;AAC1B,iDAA+B;AAQ/B,yCAAiE;AAApC,uGAAA,YAAY,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/request.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type XOR } from "./util";
|
|
2
|
-
export declare const LIB_VERSION = "1.
|
|
2
|
+
export declare const LIB_VERSION = "1.79.0";
|
|
3
3
|
export declare enum HttpMethod {
|
|
4
4
|
GET = "GET",
|
|
5
5
|
HEAD = "HEAD",
|
|
@@ -15,6 +15,7 @@ export type SvixRequestContext = {
|
|
|
15
15
|
baseUrl: string;
|
|
16
16
|
token: string;
|
|
17
17
|
timeout?: number;
|
|
18
|
+
fetch?: typeof fetch;
|
|
18
19
|
} & XOR<{
|
|
19
20
|
retryScheduleInMs?: number[];
|
|
20
21
|
}, {
|
package/dist/request.js
CHANGED
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.SvixRequest = exports.HttpMethod = exports.LIB_VERSION = void 0;
|
|
13
13
|
const util_1 = require("./util");
|
|
14
14
|
const uuid_1 = require("uuid");
|
|
15
|
-
exports.LIB_VERSION = "1.
|
|
15
|
+
exports.LIB_VERSION = "1.79.0";
|
|
16
16
|
const USER_AGENT = `svix-libs/${exports.LIB_VERSION}/javascript`;
|
|
17
17
|
var HttpMethod;
|
|
18
18
|
(function (HttpMethod) {
|
|
@@ -109,7 +109,7 @@ class SvixRequest {
|
|
|
109
109
|
headers: Object.assign({ accept: "application/json, */*;q=0.8", authorization: `Bearer ${ctx.token}`, "user-agent": USER_AGENT, "svix-req-id": randomId.toString() }, this.headerParams),
|
|
110
110
|
credentials: isCredentialsSupported ? "same-origin" : undefined,
|
|
111
111
|
signal: ctx.timeout !== undefined ? AbortSignal.timeout(ctx.timeout) : undefined,
|
|
112
|
-
}, ctx.retryScheduleInMs, (_a = ctx.retryScheduleInMs) === null || _a === void 0 ? void 0 : _a[0], ((_b = ctx.retryScheduleInMs) === null || _b === void 0 ? void 0 : _b.length) || ctx.numRetries);
|
|
112
|
+
}, ctx.retryScheduleInMs, (_a = ctx.retryScheduleInMs) === null || _a === void 0 ? void 0 : _a[0], ((_b = ctx.retryScheduleInMs) === null || _b === void 0 ? void 0 : _b.length) || ctx.numRetries, ctx.fetch);
|
|
113
113
|
return filterResponseForErrors(response);
|
|
114
114
|
});
|
|
115
115
|
}
|
|
@@ -130,11 +130,11 @@ function filterResponseForErrors(response) {
|
|
|
130
130
|
throw new util_1.ApiException(response.status, responseBody, response.headers);
|
|
131
131
|
});
|
|
132
132
|
}
|
|
133
|
-
function sendWithRetry(url, init, retryScheduleInMs, nextInterval = 50, triesLeft = 2, retryCount = 1) {
|
|
133
|
+
function sendWithRetry(url, init, retryScheduleInMs, nextInterval = 50, triesLeft = 2, fetchImpl = fetch, retryCount = 1) {
|
|
134
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
135
|
const sleep = (interval) => new Promise((resolve) => setTimeout(resolve, interval));
|
|
136
136
|
try {
|
|
137
|
-
const response = yield
|
|
137
|
+
const response = yield fetchImpl(url, init);
|
|
138
138
|
if (triesLeft <= 0 || response.status < 500) {
|
|
139
139
|
return response;
|
|
140
140
|
}
|
|
@@ -147,7 +147,7 @@ function sendWithRetry(url, init, retryScheduleInMs, nextInterval = 50, triesLef
|
|
|
147
147
|
yield sleep(nextInterval);
|
|
148
148
|
init.headers["svix-retry-count"] = retryCount.toString();
|
|
149
149
|
nextInterval = (retryScheduleInMs === null || retryScheduleInMs === void 0 ? void 0 : retryScheduleInMs[retryCount]) || nextInterval * 2;
|
|
150
|
-
return yield sendWithRetry(url, init, retryScheduleInMs, nextInterval, --triesLeft, ++retryCount);
|
|
150
|
+
return yield sendWithRetry(url, init, retryScheduleInMs, nextInterval, --triesLeft, fetchImpl, ++retryCount);
|
|
151
151
|
});
|
|
152
152
|
}
|
|
153
153
|
//# sourceMappingURL=request.js.map
|
package/dist/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iCAAgD;AAEhD,+BAAoC;AAEvB,QAAA,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,UAAU,GAAG,aAAa,mBAAW,aAAa,CAAC;AAEzD,IAAY,UAUX;AAVD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,2BAAa,CAAA;IACb,2BAAa,CAAA;IACb,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,6BAAe,CAAA;IACf,6BAAe,CAAA;AACjB,CAAC,EAVW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAUrB;
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -36,6 +36,11 @@ export type SvixOptions = {
|
|
|
36
36
|
serverUrl?: string;
|
|
37
37
|
/** Time in milliseconds to wait for requests to get a response. */
|
|
38
38
|
requestTimeout?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Custom fetch implementation to use for HTTP requests.
|
|
41
|
+
* Useful for testing, adding custom middleware, or running in non-standard environments.
|
|
42
|
+
*/
|
|
43
|
+
fetch?: typeof fetch;
|
|
39
44
|
} & XOR<
|
|
40
45
|
{
|
|
41
46
|
/** List of delays (in milliseconds) to wait before each retry attempt.*/
|
|
@@ -71,6 +76,7 @@ export class Svix {
|
|
|
71
76
|
token,
|
|
72
77
|
timeout: options.requestTimeout,
|
|
73
78
|
retryScheduleInMs: options.retryScheduleInMs,
|
|
79
|
+
fetch: options.fetch,
|
|
74
80
|
};
|
|
75
81
|
return;
|
|
76
82
|
}
|
|
@@ -80,6 +86,7 @@ export class Svix {
|
|
|
80
86
|
token,
|
|
81
87
|
timeout: options.requestTimeout,
|
|
82
88
|
numRetries: options.numRetries,
|
|
89
|
+
fetch: options.fetch,
|
|
83
90
|
};
|
|
84
91
|
return;
|
|
85
92
|
}
|
|
@@ -87,6 +94,7 @@ export class Svix {
|
|
|
87
94
|
baseUrl,
|
|
88
95
|
token,
|
|
89
96
|
timeout: options.requestTimeout,
|
|
97
|
+
fetch: options.fetch,
|
|
90
98
|
};
|
|
91
99
|
}
|
|
92
100
|
|
package/src/mockttp.test.ts
CHANGED
|
@@ -500,4 +500,22 @@ test("mockttp tests", async (t) => {
|
|
|
500
500
|
const requests = await endpointMock.getSeenRequests();
|
|
501
501
|
assert.equal(requests.length, 1);
|
|
502
502
|
});
|
|
503
|
+
|
|
504
|
+
await t.test("should use custom fetch implementation", async () => {
|
|
505
|
+
let customFetchCalled = false;
|
|
506
|
+
const mockFetch: typeof fetch = async (_input, _init) => {
|
|
507
|
+
customFetchCalled = true;
|
|
508
|
+
return new Response(ListResponseApplicationOut, {
|
|
509
|
+
status: 200,
|
|
510
|
+
headers: { "Content-Type": "application/json" },
|
|
511
|
+
});
|
|
512
|
+
};
|
|
513
|
+
|
|
514
|
+
await mockServer
|
|
515
|
+
.forGet(/\/api\/v1\/app.*/)
|
|
516
|
+
.thenReply(200, ListResponseApplicationOut);
|
|
517
|
+
const svx = new Svix("token", { serverUrl: mockServer.url, fetch: mockFetch });
|
|
518
|
+
await svx.application.list({ order: Ordering.Ascending });
|
|
519
|
+
assert(customFetchCalled);
|
|
520
|
+
});
|
|
503
521
|
});
|
package/src/request.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ApiException, type XOR } from "./util";
|
|
|
2
2
|
import type { HttpErrorOut, HTTPValidationError } from "./HttpErrors";
|
|
3
3
|
import { v4 as uuidv4 } from "uuid";
|
|
4
4
|
|
|
5
|
-
export const LIB_VERSION = "1.
|
|
5
|
+
export const LIB_VERSION = "1.79.0";
|
|
6
6
|
const USER_AGENT = `svix-libs/${LIB_VERSION}/javascript`;
|
|
7
7
|
|
|
8
8
|
export enum HttpMethod {
|
|
@@ -24,6 +24,11 @@ export type SvixRequestContext = {
|
|
|
24
24
|
token: string;
|
|
25
25
|
/** Time in milliseconds to wait for requests to get a response. */
|
|
26
26
|
timeout?: number;
|
|
27
|
+
/**
|
|
28
|
+
* Custom fetch implementation to use for HTTP requests.
|
|
29
|
+
* Useful for testing, adding custom middleware, or running in non-standard environments.
|
|
30
|
+
*/
|
|
31
|
+
fetch?: typeof fetch;
|
|
27
32
|
} & XOR<
|
|
28
33
|
{
|
|
29
34
|
/** List of delays (in milliseconds) to wait before each retry attempt.*/
|
|
@@ -159,7 +164,8 @@ export class SvixRequest {
|
|
|
159
164
|
},
|
|
160
165
|
ctx.retryScheduleInMs,
|
|
161
166
|
ctx.retryScheduleInMs?.[0],
|
|
162
|
-
ctx.retryScheduleInMs?.length || ctx.numRetries
|
|
167
|
+
ctx.retryScheduleInMs?.length || ctx.numRetries,
|
|
168
|
+
ctx.fetch
|
|
163
169
|
);
|
|
164
170
|
return filterResponseForErrors(response);
|
|
165
171
|
}
|
|
@@ -200,13 +206,14 @@ async function sendWithRetry(
|
|
|
200
206
|
retryScheduleInMs?: number[],
|
|
201
207
|
nextInterval = 50,
|
|
202
208
|
triesLeft = 2,
|
|
209
|
+
fetchImpl: typeof fetch = fetch,
|
|
203
210
|
retryCount = 1
|
|
204
211
|
): Promise<Response> {
|
|
205
212
|
const sleep = (interval: number) =>
|
|
206
213
|
new Promise((resolve) => setTimeout(resolve, interval));
|
|
207
214
|
|
|
208
215
|
try {
|
|
209
|
-
const response = await
|
|
216
|
+
const response = await fetchImpl(url, init);
|
|
210
217
|
if (triesLeft <= 0 || response.status < 500) {
|
|
211
218
|
return response;
|
|
212
219
|
}
|
|
@@ -225,6 +232,7 @@ async function sendWithRetry(
|
|
|
225
232
|
retryScheduleInMs,
|
|
226
233
|
nextInterval,
|
|
227
234
|
--triesLeft,
|
|
235
|
+
fetchImpl,
|
|
228
236
|
++retryCount
|
|
229
237
|
);
|
|
230
238
|
}
|