@message-queue-toolkit/sqs
Version:
SQS adapter for message-queue-toolkit
36 lines • 1.39 kB
JavaScript
import { AbstractQueueService } from '@message-queue-toolkit/core';
import { deleteSqs, initSqs } from "../utils/sqsInitter.js";
// https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-messages.html
export const SQS_MESSAGE_MAX_SIZE = 256 * 1024; // 256KB
export const SQS_RESOURCE_ANY = Symbol('any');
export const SQS_RESOURCE_CURRENT_QUEUE = Symbol('current_queue');
export class AbstractSqsService extends AbstractQueueService {
sqsClient;
// @ts-expect-error
queueName;
// @ts-expect-error
queueUrl;
// @ts-expect-error
queueArn;
isFifoQueue;
constructor(dependencies, options) {
super(dependencies, options);
this.sqsClient = dependencies.sqsClient;
this.isFifoQueue = options.fifoQueue ?? false;
}
async init() {
if (this.deletionConfig && this.creationConfig) {
await deleteSqs(this.sqsClient, this.deletionConfig, this.creationConfig);
}
const { queueName, queueUrl, queueArn } = await initSqs(this.sqsClient, this.locatorConfig, this.creationConfig, this.isFifoQueue);
this.queueName = queueName;
this.queueUrl = queueUrl;
this.queueArn = queueArn;
this.isInitted = true;
}
close() {
this.isInitted = false;
return Promise.resolve();
}
}
//# sourceMappingURL=AbstractSqsService.js.map