@upstash/qstash 2.4.3 → 2.5.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.mts +63 -2
- package/dist/index.d.ts +63 -2
- package/dist/index.js +151 -29
- package/dist/index.mjs +151 -29
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -201,6 +201,47 @@ declare class DLQ {
|
|
|
201
201
|
}>;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
type QueueResponse = {
|
|
205
|
+
createdAt: number;
|
|
206
|
+
updatedAt: number;
|
|
207
|
+
name: string;
|
|
208
|
+
parallelism: number;
|
|
209
|
+
lag: number;
|
|
210
|
+
};
|
|
211
|
+
type UpsertQueueRequest = {
|
|
212
|
+
parallelism: number;
|
|
213
|
+
};
|
|
214
|
+
type EnqueueRequest = PublishRequest;
|
|
215
|
+
declare class Queue {
|
|
216
|
+
private readonly http;
|
|
217
|
+
private readonly queueName;
|
|
218
|
+
constructor(http: Requester, queueName?: string);
|
|
219
|
+
/**
|
|
220
|
+
* Create or update the queue
|
|
221
|
+
*/
|
|
222
|
+
upsert(req: UpsertQueueRequest): Promise<void>;
|
|
223
|
+
/**
|
|
224
|
+
* Get the queue details
|
|
225
|
+
*/
|
|
226
|
+
get(): Promise<QueueResponse>;
|
|
227
|
+
/**
|
|
228
|
+
* List queues
|
|
229
|
+
*/
|
|
230
|
+
list(): Promise<QueueResponse[]>;
|
|
231
|
+
/**
|
|
232
|
+
* Delete the queue
|
|
233
|
+
*/
|
|
234
|
+
delete(): Promise<void>;
|
|
235
|
+
/**
|
|
236
|
+
* Enqueue a message to a queue.
|
|
237
|
+
*/
|
|
238
|
+
enqueue(req: EnqueueRequest): Promise<PublishResponse<PublishRequest>>;
|
|
239
|
+
/**
|
|
240
|
+
* Enqueue a message to a queue, serializing the body to JSON.
|
|
241
|
+
*/
|
|
242
|
+
enqueueJSON<TBody = unknown>(req: PublishRequest<TBody>): Promise<PublishResponse<PublishRequest<TBody>>>;
|
|
243
|
+
}
|
|
244
|
+
|
|
204
245
|
type Schedule = {
|
|
205
246
|
scheduleId: string;
|
|
206
247
|
cron: string;
|
|
@@ -519,11 +560,26 @@ type PublishJsonRequest = Omit<PublishRequest, "body"> & {
|
|
|
519
560
|
};
|
|
520
561
|
type EventsRequest = {
|
|
521
562
|
cursor?: number;
|
|
563
|
+
filter?: EventsRequestFilter;
|
|
564
|
+
};
|
|
565
|
+
type EventsRequestFilter = {
|
|
566
|
+
messageId?: string;
|
|
567
|
+
state?: State;
|
|
568
|
+
url?: string;
|
|
569
|
+
topicName?: string;
|
|
570
|
+
scheduleId?: string;
|
|
571
|
+
queueName?: string;
|
|
572
|
+
fromDate?: number;
|
|
573
|
+
toDate?: number;
|
|
574
|
+
count?: number;
|
|
522
575
|
};
|
|
523
576
|
type GetEventsResponse = {
|
|
524
577
|
cursor?: number;
|
|
525
578
|
events: Event[];
|
|
526
579
|
};
|
|
580
|
+
type QueueRequest = {
|
|
581
|
+
queueName?: string;
|
|
582
|
+
};
|
|
527
583
|
declare class Client {
|
|
528
584
|
http: Requester;
|
|
529
585
|
constructor(config: ClientConfig);
|
|
@@ -551,7 +607,12 @@ declare class Client {
|
|
|
551
607
|
* Create, read or delete schedules.
|
|
552
608
|
*/
|
|
553
609
|
get schedules(): Schedules;
|
|
554
|
-
|
|
610
|
+
/**
|
|
611
|
+
* Access the queue API.
|
|
612
|
+
*
|
|
613
|
+
* Create, read, update or delete queues.
|
|
614
|
+
*/
|
|
615
|
+
queue(req?: QueueRequest): Queue;
|
|
555
616
|
publish<TRequest extends PublishRequest>(req: TRequest): Promise<PublishResponse<TRequest>>;
|
|
556
617
|
/**
|
|
557
618
|
* publishJSON is a utility wrapper around `publish` that automatically serializes the body
|
|
@@ -607,4 +668,4 @@ declare class QstashRatelimitError extends QstashError {
|
|
|
607
668
|
constructor(args: unknown);
|
|
608
669
|
}
|
|
609
670
|
|
|
610
|
-
export { AddEndpointsRequest, Client, CreateScheduleRequest, Endpoint, Event, EventsRequest, GetEventsResponse, Message, Messages, PublishJsonRequest, PublishRequest, PublishResponse, PublishToTopicResponse, PublishToUrlResponse, QstashError, QstashRatelimitError, Receiver, ReceiverConfig, RemoveEndpointsRequest, Schedule, Schedules, SignatureError, State, Topic, Topics, VerifyRequest, WithCursor };
|
|
671
|
+
export { AddEndpointsRequest, Client, CreateScheduleRequest, Endpoint, Event, EventsRequest, GetEventsResponse, Message, Messages, PublishJsonRequest, PublishRequest, PublishResponse, PublishToTopicResponse, PublishToUrlResponse, QstashError, QstashRatelimitError, QueueRequest, Receiver, ReceiverConfig, RemoveEndpointsRequest, Schedule, Schedules, SignatureError, State, Topic, Topics, VerifyRequest, WithCursor };
|
package/dist/index.d.ts
CHANGED
|
@@ -201,6 +201,47 @@ declare class DLQ {
|
|
|
201
201
|
}>;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
type QueueResponse = {
|
|
205
|
+
createdAt: number;
|
|
206
|
+
updatedAt: number;
|
|
207
|
+
name: string;
|
|
208
|
+
parallelism: number;
|
|
209
|
+
lag: number;
|
|
210
|
+
};
|
|
211
|
+
type UpsertQueueRequest = {
|
|
212
|
+
parallelism: number;
|
|
213
|
+
};
|
|
214
|
+
type EnqueueRequest = PublishRequest;
|
|
215
|
+
declare class Queue {
|
|
216
|
+
private readonly http;
|
|
217
|
+
private readonly queueName;
|
|
218
|
+
constructor(http: Requester, queueName?: string);
|
|
219
|
+
/**
|
|
220
|
+
* Create or update the queue
|
|
221
|
+
*/
|
|
222
|
+
upsert(req: UpsertQueueRequest): Promise<void>;
|
|
223
|
+
/**
|
|
224
|
+
* Get the queue details
|
|
225
|
+
*/
|
|
226
|
+
get(): Promise<QueueResponse>;
|
|
227
|
+
/**
|
|
228
|
+
* List queues
|
|
229
|
+
*/
|
|
230
|
+
list(): Promise<QueueResponse[]>;
|
|
231
|
+
/**
|
|
232
|
+
* Delete the queue
|
|
233
|
+
*/
|
|
234
|
+
delete(): Promise<void>;
|
|
235
|
+
/**
|
|
236
|
+
* Enqueue a message to a queue.
|
|
237
|
+
*/
|
|
238
|
+
enqueue(req: EnqueueRequest): Promise<PublishResponse<PublishRequest>>;
|
|
239
|
+
/**
|
|
240
|
+
* Enqueue a message to a queue, serializing the body to JSON.
|
|
241
|
+
*/
|
|
242
|
+
enqueueJSON<TBody = unknown>(req: PublishRequest<TBody>): Promise<PublishResponse<PublishRequest<TBody>>>;
|
|
243
|
+
}
|
|
244
|
+
|
|
204
245
|
type Schedule = {
|
|
205
246
|
scheduleId: string;
|
|
206
247
|
cron: string;
|
|
@@ -519,11 +560,26 @@ type PublishJsonRequest = Omit<PublishRequest, "body"> & {
|
|
|
519
560
|
};
|
|
520
561
|
type EventsRequest = {
|
|
521
562
|
cursor?: number;
|
|
563
|
+
filter?: EventsRequestFilter;
|
|
564
|
+
};
|
|
565
|
+
type EventsRequestFilter = {
|
|
566
|
+
messageId?: string;
|
|
567
|
+
state?: State;
|
|
568
|
+
url?: string;
|
|
569
|
+
topicName?: string;
|
|
570
|
+
scheduleId?: string;
|
|
571
|
+
queueName?: string;
|
|
572
|
+
fromDate?: number;
|
|
573
|
+
toDate?: number;
|
|
574
|
+
count?: number;
|
|
522
575
|
};
|
|
523
576
|
type GetEventsResponse = {
|
|
524
577
|
cursor?: number;
|
|
525
578
|
events: Event[];
|
|
526
579
|
};
|
|
580
|
+
type QueueRequest = {
|
|
581
|
+
queueName?: string;
|
|
582
|
+
};
|
|
527
583
|
declare class Client {
|
|
528
584
|
http: Requester;
|
|
529
585
|
constructor(config: ClientConfig);
|
|
@@ -551,7 +607,12 @@ declare class Client {
|
|
|
551
607
|
* Create, read or delete schedules.
|
|
552
608
|
*/
|
|
553
609
|
get schedules(): Schedules;
|
|
554
|
-
|
|
610
|
+
/**
|
|
611
|
+
* Access the queue API.
|
|
612
|
+
*
|
|
613
|
+
* Create, read, update or delete queues.
|
|
614
|
+
*/
|
|
615
|
+
queue(req?: QueueRequest): Queue;
|
|
555
616
|
publish<TRequest extends PublishRequest>(req: TRequest): Promise<PublishResponse<TRequest>>;
|
|
556
617
|
/**
|
|
557
618
|
* publishJSON is a utility wrapper around `publish` that automatically serializes the body
|
|
@@ -607,4 +668,4 @@ declare class QstashRatelimitError extends QstashError {
|
|
|
607
668
|
constructor(args: unknown);
|
|
608
669
|
}
|
|
609
670
|
|
|
610
|
-
export { AddEndpointsRequest, Client, CreateScheduleRequest, Endpoint, Event, EventsRequest, GetEventsResponse, Message, Messages, PublishJsonRequest, PublishRequest, PublishResponse, PublishToTopicResponse, PublishToUrlResponse, QstashError, QstashRatelimitError, Receiver, ReceiverConfig, RemoveEndpointsRequest, Schedule, Schedules, SignatureError, State, Topic, Topics, VerifyRequest, WithCursor };
|
|
671
|
+
export { AddEndpointsRequest, Client, CreateScheduleRequest, Endpoint, Event, EventsRequest, GetEventsResponse, Message, Messages, PublishJsonRequest, PublishRequest, PublishResponse, PublishToTopicResponse, PublishToUrlResponse, QstashError, QstashRatelimitError, QueueRequest, Receiver, ReceiverConfig, RemoveEndpointsRequest, Schedule, Schedules, SignatureError, State, Topic, Topics, VerifyRequest, WithCursor };
|
package/dist/index.js
CHANGED
|
@@ -183,6 +183,138 @@ function prefixHeaders(headers) {
|
|
|
183
183
|
}
|
|
184
184
|
return headers;
|
|
185
185
|
}
|
|
186
|
+
function processHeaders(req) {
|
|
187
|
+
var _a;
|
|
188
|
+
const headers = prefixHeaders(new Headers(req.headers));
|
|
189
|
+
headers.set("Upstash-Method", (_a = req.method) != null ? _a : "POST");
|
|
190
|
+
if (typeof req.delay !== "undefined") {
|
|
191
|
+
headers.set("Upstash-Delay", `${req.delay.toFixed()}s`);
|
|
192
|
+
}
|
|
193
|
+
if (typeof req.notBefore !== "undefined") {
|
|
194
|
+
headers.set("Upstash-Not-Before", req.notBefore.toFixed());
|
|
195
|
+
}
|
|
196
|
+
if (typeof req.deduplicationId !== "undefined") {
|
|
197
|
+
headers.set("Upstash-Deduplication-Id", req.deduplicationId);
|
|
198
|
+
}
|
|
199
|
+
if (typeof req.contentBasedDeduplication !== "undefined") {
|
|
200
|
+
headers.set("Upstash-Content-Based-Deduplication", "true");
|
|
201
|
+
}
|
|
202
|
+
if (typeof req.retries !== "undefined") {
|
|
203
|
+
headers.set("Upstash-Retries", req.retries.toFixed());
|
|
204
|
+
}
|
|
205
|
+
if (typeof req.callback !== "undefined") {
|
|
206
|
+
headers.set("Upstash-Callback", req.callback);
|
|
207
|
+
}
|
|
208
|
+
if (typeof req.failureCallback !== "undefined") {
|
|
209
|
+
headers.set("Upstash-Failure-Callback", req.failureCallback);
|
|
210
|
+
}
|
|
211
|
+
return headers;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// src/client/queue.ts
|
|
215
|
+
var Queue = class {
|
|
216
|
+
constructor(http, queueName) {
|
|
217
|
+
this.http = http;
|
|
218
|
+
this.queueName = queueName;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Create or update the queue
|
|
222
|
+
*/
|
|
223
|
+
upsert(req) {
|
|
224
|
+
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
225
|
+
if (!this.queueName) {
|
|
226
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
227
|
+
}
|
|
228
|
+
const body = {
|
|
229
|
+
queueName: this.queueName,
|
|
230
|
+
parallelism: req.parallelism
|
|
231
|
+
};
|
|
232
|
+
yield this.http.request({
|
|
233
|
+
method: "POST",
|
|
234
|
+
path: ["v2", "queues"],
|
|
235
|
+
headers: {
|
|
236
|
+
"Content-Type": "application/json"
|
|
237
|
+
},
|
|
238
|
+
body: JSON.stringify(body),
|
|
239
|
+
parseResponseAsJson: false
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get the queue details
|
|
245
|
+
*/
|
|
246
|
+
get() {
|
|
247
|
+
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
248
|
+
if (!this.queueName) {
|
|
249
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
250
|
+
}
|
|
251
|
+
return yield this.http.request({
|
|
252
|
+
method: "GET",
|
|
253
|
+
path: ["v2", "queues", this.queueName]
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* List queues
|
|
259
|
+
*/
|
|
260
|
+
list() {
|
|
261
|
+
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
262
|
+
return yield this.http.request({
|
|
263
|
+
method: "GET",
|
|
264
|
+
path: ["v2", "queues"]
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Delete the queue
|
|
270
|
+
*/
|
|
271
|
+
delete() {
|
|
272
|
+
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
273
|
+
if (!this.queueName) {
|
|
274
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
275
|
+
}
|
|
276
|
+
yield this.http.request({
|
|
277
|
+
method: "DELETE",
|
|
278
|
+
path: ["v2", "queues", this.queueName],
|
|
279
|
+
parseResponseAsJson: false
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Enqueue a message to a queue.
|
|
285
|
+
*/
|
|
286
|
+
enqueue(req) {
|
|
287
|
+
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
288
|
+
var _a;
|
|
289
|
+
if (!this.queueName) {
|
|
290
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
291
|
+
}
|
|
292
|
+
const headers = processHeaders(req);
|
|
293
|
+
const destination = (_a = req.url) != null ? _a : req.topic;
|
|
294
|
+
const res = yield this.http.request({
|
|
295
|
+
path: ["v2", "enqueue", this.queueName, destination],
|
|
296
|
+
body: req.body,
|
|
297
|
+
headers,
|
|
298
|
+
method: "POST"
|
|
299
|
+
});
|
|
300
|
+
return res;
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Enqueue a message to a queue, serializing the body to JSON.
|
|
305
|
+
*/
|
|
306
|
+
enqueueJSON(req) {
|
|
307
|
+
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
308
|
+
const headers = prefixHeaders(new Headers(req.headers));
|
|
309
|
+
headers.set("Content-Type", "application/json");
|
|
310
|
+
const res = yield this.enqueue(_chunkEROSIHWEjs.__spreadProps.call(void 0, _chunkEROSIHWEjs.__spreadValues.call(void 0, {}, req), {
|
|
311
|
+
body: JSON.stringify(req.body),
|
|
312
|
+
headers
|
|
313
|
+
}));
|
|
314
|
+
return res;
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
};
|
|
186
318
|
|
|
187
319
|
// src/client/schedules.ts
|
|
188
320
|
var Schedules = class {
|
|
@@ -368,37 +500,18 @@ var Client = class {
|
|
|
368
500
|
get schedules() {
|
|
369
501
|
return new Schedules(this.http);
|
|
370
502
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
if (typeof req.notBefore !== "undefined") {
|
|
379
|
-
headers.set("Upstash-Not-Before", req.notBefore.toFixed());
|
|
380
|
-
}
|
|
381
|
-
if (typeof req.deduplicationId !== "undefined") {
|
|
382
|
-
headers.set("Upstash-Deduplication-Id", req.deduplicationId);
|
|
383
|
-
}
|
|
384
|
-
if (typeof req.contentBasedDeduplication !== "undefined") {
|
|
385
|
-
headers.set("Upstash-Content-Based-Deduplication", "true");
|
|
386
|
-
}
|
|
387
|
-
if (typeof req.retries !== "undefined") {
|
|
388
|
-
headers.set("Upstash-Retries", req.retries.toFixed());
|
|
389
|
-
}
|
|
390
|
-
if (typeof req.callback !== "undefined") {
|
|
391
|
-
headers.set("Upstash-Callback", req.callback);
|
|
392
|
-
}
|
|
393
|
-
if (typeof req.failureCallback !== "undefined") {
|
|
394
|
-
headers.set("Upstash-Failure-Callback", req.failureCallback);
|
|
395
|
-
}
|
|
396
|
-
return headers;
|
|
503
|
+
/**
|
|
504
|
+
* Access the queue API.
|
|
505
|
+
*
|
|
506
|
+
* Create, read, update or delete queues.
|
|
507
|
+
*/
|
|
508
|
+
queue(req) {
|
|
509
|
+
return new Queue(this.http, req == null ? void 0 : req.queueName);
|
|
397
510
|
}
|
|
398
511
|
publish(req) {
|
|
399
512
|
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
400
513
|
var _a;
|
|
401
|
-
const headers =
|
|
514
|
+
const headers = processHeaders(req);
|
|
402
515
|
const res = yield this.http.request({
|
|
403
516
|
path: ["v2", "publish", (_a = req.url) != null ? _a : req.topic],
|
|
404
517
|
body: req.body,
|
|
@@ -431,7 +544,7 @@ var Client = class {
|
|
|
431
544
|
var _a;
|
|
432
545
|
const messages = [];
|
|
433
546
|
for (const message of req) {
|
|
434
|
-
const headers =
|
|
547
|
+
const headers = processHeaders(message);
|
|
435
548
|
const headerEntries = Object.fromEntries(headers.entries());
|
|
436
549
|
messages.push({
|
|
437
550
|
destination: (_a = message.url) != null ? _a : message.topic,
|
|
@@ -487,9 +600,18 @@ var Client = class {
|
|
|
487
600
|
*/
|
|
488
601
|
events(req) {
|
|
489
602
|
return _chunkEROSIHWEjs.__async.call(void 0, this, null, function* () {
|
|
603
|
+
var _a;
|
|
490
604
|
const query = {};
|
|
491
605
|
if ((req == null ? void 0 : req.cursor) && req.cursor > 0) {
|
|
492
|
-
query.cursor = req.cursor;
|
|
606
|
+
query.cursor = req.cursor.toString();
|
|
607
|
+
}
|
|
608
|
+
for (const [key, value] of Object.entries((_a = req == null ? void 0 : req.filter) != null ? _a : {})) {
|
|
609
|
+
if (typeof value === "number" && value < 0) {
|
|
610
|
+
continue;
|
|
611
|
+
}
|
|
612
|
+
if (typeof value !== "undefined") {
|
|
613
|
+
query[key] = value.toString();
|
|
614
|
+
}
|
|
493
615
|
}
|
|
494
616
|
const res = yield this.http.request({
|
|
495
617
|
path: ["v2", "events"],
|
package/dist/index.mjs
CHANGED
|
@@ -183,6 +183,138 @@ function prefixHeaders(headers) {
|
|
|
183
183
|
}
|
|
184
184
|
return headers;
|
|
185
185
|
}
|
|
186
|
+
function processHeaders(req) {
|
|
187
|
+
var _a;
|
|
188
|
+
const headers = prefixHeaders(new Headers(req.headers));
|
|
189
|
+
headers.set("Upstash-Method", (_a = req.method) != null ? _a : "POST");
|
|
190
|
+
if (typeof req.delay !== "undefined") {
|
|
191
|
+
headers.set("Upstash-Delay", `${req.delay.toFixed()}s`);
|
|
192
|
+
}
|
|
193
|
+
if (typeof req.notBefore !== "undefined") {
|
|
194
|
+
headers.set("Upstash-Not-Before", req.notBefore.toFixed());
|
|
195
|
+
}
|
|
196
|
+
if (typeof req.deduplicationId !== "undefined") {
|
|
197
|
+
headers.set("Upstash-Deduplication-Id", req.deduplicationId);
|
|
198
|
+
}
|
|
199
|
+
if (typeof req.contentBasedDeduplication !== "undefined") {
|
|
200
|
+
headers.set("Upstash-Content-Based-Deduplication", "true");
|
|
201
|
+
}
|
|
202
|
+
if (typeof req.retries !== "undefined") {
|
|
203
|
+
headers.set("Upstash-Retries", req.retries.toFixed());
|
|
204
|
+
}
|
|
205
|
+
if (typeof req.callback !== "undefined") {
|
|
206
|
+
headers.set("Upstash-Callback", req.callback);
|
|
207
|
+
}
|
|
208
|
+
if (typeof req.failureCallback !== "undefined") {
|
|
209
|
+
headers.set("Upstash-Failure-Callback", req.failureCallback);
|
|
210
|
+
}
|
|
211
|
+
return headers;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
// src/client/queue.ts
|
|
215
|
+
var Queue = class {
|
|
216
|
+
constructor(http, queueName) {
|
|
217
|
+
this.http = http;
|
|
218
|
+
this.queueName = queueName;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Create or update the queue
|
|
222
|
+
*/
|
|
223
|
+
upsert(req) {
|
|
224
|
+
return __async(this, null, function* () {
|
|
225
|
+
if (!this.queueName) {
|
|
226
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
227
|
+
}
|
|
228
|
+
const body = {
|
|
229
|
+
queueName: this.queueName,
|
|
230
|
+
parallelism: req.parallelism
|
|
231
|
+
};
|
|
232
|
+
yield this.http.request({
|
|
233
|
+
method: "POST",
|
|
234
|
+
path: ["v2", "queues"],
|
|
235
|
+
headers: {
|
|
236
|
+
"Content-Type": "application/json"
|
|
237
|
+
},
|
|
238
|
+
body: JSON.stringify(body),
|
|
239
|
+
parseResponseAsJson: false
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Get the queue details
|
|
245
|
+
*/
|
|
246
|
+
get() {
|
|
247
|
+
return __async(this, null, function* () {
|
|
248
|
+
if (!this.queueName) {
|
|
249
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
250
|
+
}
|
|
251
|
+
return yield this.http.request({
|
|
252
|
+
method: "GET",
|
|
253
|
+
path: ["v2", "queues", this.queueName]
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* List queues
|
|
259
|
+
*/
|
|
260
|
+
list() {
|
|
261
|
+
return __async(this, null, function* () {
|
|
262
|
+
return yield this.http.request({
|
|
263
|
+
method: "GET",
|
|
264
|
+
path: ["v2", "queues"]
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Delete the queue
|
|
270
|
+
*/
|
|
271
|
+
delete() {
|
|
272
|
+
return __async(this, null, function* () {
|
|
273
|
+
if (!this.queueName) {
|
|
274
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
275
|
+
}
|
|
276
|
+
yield this.http.request({
|
|
277
|
+
method: "DELETE",
|
|
278
|
+
path: ["v2", "queues", this.queueName],
|
|
279
|
+
parseResponseAsJson: false
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Enqueue a message to a queue.
|
|
285
|
+
*/
|
|
286
|
+
enqueue(req) {
|
|
287
|
+
return __async(this, null, function* () {
|
|
288
|
+
var _a;
|
|
289
|
+
if (!this.queueName) {
|
|
290
|
+
throw new Error("Please provide a queue name to the Queue constructor");
|
|
291
|
+
}
|
|
292
|
+
const headers = processHeaders(req);
|
|
293
|
+
const destination = (_a = req.url) != null ? _a : req.topic;
|
|
294
|
+
const res = yield this.http.request({
|
|
295
|
+
path: ["v2", "enqueue", this.queueName, destination],
|
|
296
|
+
body: req.body,
|
|
297
|
+
headers,
|
|
298
|
+
method: "POST"
|
|
299
|
+
});
|
|
300
|
+
return res;
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Enqueue a message to a queue, serializing the body to JSON.
|
|
305
|
+
*/
|
|
306
|
+
enqueueJSON(req) {
|
|
307
|
+
return __async(this, null, function* () {
|
|
308
|
+
const headers = prefixHeaders(new Headers(req.headers));
|
|
309
|
+
headers.set("Content-Type", "application/json");
|
|
310
|
+
const res = yield this.enqueue(__spreadProps(__spreadValues({}, req), {
|
|
311
|
+
body: JSON.stringify(req.body),
|
|
312
|
+
headers
|
|
313
|
+
}));
|
|
314
|
+
return res;
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
};
|
|
186
318
|
|
|
187
319
|
// src/client/schedules.ts
|
|
188
320
|
var Schedules = class {
|
|
@@ -368,37 +500,18 @@ var Client = class {
|
|
|
368
500
|
get schedules() {
|
|
369
501
|
return new Schedules(this.http);
|
|
370
502
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
if (typeof req.notBefore !== "undefined") {
|
|
379
|
-
headers.set("Upstash-Not-Before", req.notBefore.toFixed());
|
|
380
|
-
}
|
|
381
|
-
if (typeof req.deduplicationId !== "undefined") {
|
|
382
|
-
headers.set("Upstash-Deduplication-Id", req.deduplicationId);
|
|
383
|
-
}
|
|
384
|
-
if (typeof req.contentBasedDeduplication !== "undefined") {
|
|
385
|
-
headers.set("Upstash-Content-Based-Deduplication", "true");
|
|
386
|
-
}
|
|
387
|
-
if (typeof req.retries !== "undefined") {
|
|
388
|
-
headers.set("Upstash-Retries", req.retries.toFixed());
|
|
389
|
-
}
|
|
390
|
-
if (typeof req.callback !== "undefined") {
|
|
391
|
-
headers.set("Upstash-Callback", req.callback);
|
|
392
|
-
}
|
|
393
|
-
if (typeof req.failureCallback !== "undefined") {
|
|
394
|
-
headers.set("Upstash-Failure-Callback", req.failureCallback);
|
|
395
|
-
}
|
|
396
|
-
return headers;
|
|
503
|
+
/**
|
|
504
|
+
* Access the queue API.
|
|
505
|
+
*
|
|
506
|
+
* Create, read, update or delete queues.
|
|
507
|
+
*/
|
|
508
|
+
queue(req) {
|
|
509
|
+
return new Queue(this.http, req == null ? void 0 : req.queueName);
|
|
397
510
|
}
|
|
398
511
|
publish(req) {
|
|
399
512
|
return __async(this, null, function* () {
|
|
400
513
|
var _a;
|
|
401
|
-
const headers =
|
|
514
|
+
const headers = processHeaders(req);
|
|
402
515
|
const res = yield this.http.request({
|
|
403
516
|
path: ["v2", "publish", (_a = req.url) != null ? _a : req.topic],
|
|
404
517
|
body: req.body,
|
|
@@ -431,7 +544,7 @@ var Client = class {
|
|
|
431
544
|
var _a;
|
|
432
545
|
const messages = [];
|
|
433
546
|
for (const message of req) {
|
|
434
|
-
const headers =
|
|
547
|
+
const headers = processHeaders(message);
|
|
435
548
|
const headerEntries = Object.fromEntries(headers.entries());
|
|
436
549
|
messages.push({
|
|
437
550
|
destination: (_a = message.url) != null ? _a : message.topic,
|
|
@@ -487,9 +600,18 @@ var Client = class {
|
|
|
487
600
|
*/
|
|
488
601
|
events(req) {
|
|
489
602
|
return __async(this, null, function* () {
|
|
603
|
+
var _a;
|
|
490
604
|
const query = {};
|
|
491
605
|
if ((req == null ? void 0 : req.cursor) && req.cursor > 0) {
|
|
492
|
-
query.cursor = req.cursor;
|
|
606
|
+
query.cursor = req.cursor.toString();
|
|
607
|
+
}
|
|
608
|
+
for (const [key, value] of Object.entries((_a = req == null ? void 0 : req.filter) != null ? _a : {})) {
|
|
609
|
+
if (typeof value === "number" && value < 0) {
|
|
610
|
+
continue;
|
|
611
|
+
}
|
|
612
|
+
if (typeof value !== "undefined") {
|
|
613
|
+
query[key] = value.toString();
|
|
614
|
+
}
|
|
493
615
|
}
|
|
494
616
|
const res = yield this.http.request({
|
|
495
617
|
path: ["v2", "events"],
|