Skip to content

Commit 0983463

Browse files
committed
feat: expose SQS lib plugin configurable options
1 parent 3a2f32a commit 0983463

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

src/plugins/sqs/index.ts

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,34 @@ import type { IncomingMessage, ServerResponse } from "http";
22
import type { SlsAwsLambdaPlugin } from "../../defineConfig";
33
import type { QueueAttributes } from "./types";
44
import { getQueues } from "./utils";
5-
import { createRequestHandler } from "local-aws-sqs";
5+
import { createRequestHandler, type ISqsServerOptions } from "local-aws-sqs";
66

7-
export const sqsPlugin = (attributes?: QueueAttributes): SlsAwsLambdaPlugin => {
7+
export const sqsPlugin = (
8+
attributes?: QueueAttributes,
9+
serviceOptions?: Pick<ISqsServerOptions, "emulateLazyQueues" | "emulateQueueCreationLifecycle" | "validateDlqDestination">
10+
): SlsAwsLambdaPlugin => {
811
let sqsRequestHandler = (req: IncomingMessage, res: ServerResponse) => {};
912
let region: string | undefined = undefined;
1013
let accountId: string | undefined = undefined;
1114

15+
let validateDlqDestination = false;
16+
let emulateQueueCreationLifecycle = false;
17+
let emulateLazyQueues = false;
18+
19+
if (serviceOptions) {
20+
if (typeof serviceOptions.validateDlqDestination == "boolean") {
21+
validateDlqDestination = serviceOptions.validateDlqDestination;
22+
}
23+
24+
if (typeof serviceOptions.emulateQueueCreationLifecycle == "boolean") {
25+
emulateQueueCreationLifecycle = serviceOptions.emulateQueueCreationLifecycle;
26+
}
27+
28+
if (typeof serviceOptions.emulateLazyQueues == "boolean") {
29+
emulateLazyQueues = serviceOptions.emulateLazyQueues;
30+
}
31+
}
32+
1233
const onReadyListener: Function[] = [];
1334

1435
const notifyReadyState = async () => {
@@ -58,8 +79,9 @@ export const sqsPlugin = (attributes?: QueueAttributes): SlsAwsLambdaPlugin => {
5879
port: port,
5980
region,
6081
accountId,
61-
validateDlqDestination: false,
62-
emulateQueueCreationLifecycle: false,
82+
validateDlqDestination,
83+
emulateQueueCreationLifecycle,
84+
emulateLazyQueues,
6385
baseUrl: "/@sqs/",
6486
queues: getQueues(this.resources.sqs, this.lambdas, attributes),
6587
});

0 commit comments

Comments
 (0)