@yopdev/dev-server 3.0.3-beta.5 → 3.0.3-beta.6

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.
@@ -6,6 +6,8 @@ export declare const newInternalQueue: (name: string, config: {
6
6
  name: string;
7
7
  visibility: number;
8
8
  handler: (queue: Queue) => (e: SQSEvent) => Promise<void>;
9
- fifo: boolean;
9
+ fifoConfig: {
10
+ contentBasedDeduplication: boolean;
11
+ } | undefined;
10
12
  mapper?: (message: Message) => SQSRecord;
11
13
  }, callback?: Callback<string>) => Service<string>;
@@ -6,7 +6,7 @@ const sqs_consumer_1 = require("sqs-consumer");
6
6
  const stoppable_1 = require("./stoppable");
7
7
  const mappers_1 = require("./mappers");
8
8
  const services_1 = require("./services");
9
- const newInternalQueue = (name, config, callback) => new services_1.Service(new InternalQueue(name, config.visibility, config.handler, (sqs) => config.fifo ? sqs.createFifoQueue : sqs.createStandardQueue, config.mapper ?? mappers_1.mapToLambdaSqsRecord), callback);
9
+ const newInternalQueue = (name, config, callback) => new services_1.Service(new InternalQueue(name, config.visibility, config.handler, (sqs) => config.fifoConfig === undefined ? sqs.createStandardQueue : (name) => sqs.createFifoQueue(name, config.fifoConfig.contentBasedDeduplication), config.mapper ?? mappers_1.mapToLambdaSqsRecord), callback);
10
10
  exports.newInternalQueue = newInternalQueue;
11
11
  class InternalQueue {
12
12
  constructor(name, visibility, handler, creator, mapper) {
package/dist/src/sqs.d.ts CHANGED
@@ -4,9 +4,15 @@ export declare class Sqs {
4
4
  readonly client: SQSClient;
5
5
  constructor(config: AwsConfig);
6
6
  createStandardQueue: (name: string) => Promise<Queue>;
7
- createFifoQueue: (name: string) => Promise<Queue>;
7
+ createFifoQueue: (name: string, contentBasedDeduplication: boolean) => Promise<Queue>;
8
8
  private createNamedQueue;
9
9
  }
10
+ export type FIFOConfig = {
11
+ enabled: true;
12
+ contentBasedDeduplication: boolean;
13
+ } | {
14
+ enabled: false;
15
+ };
10
16
  export type Queue = {
11
17
  arn: string;
12
18
  url: string;
package/dist/src/sqs.js CHANGED
@@ -8,14 +8,26 @@ const QUEUE_NAME_ATTRIBUTE_NAME = 'QueueArn';
8
8
  const LOGGER = logging_1.LoggerFactory.create('SQS');
9
9
  class Sqs {
10
10
  constructor(config) {
11
- this.createStandardQueue = async (name) => this.createNamedQueue(name, false);
12
- this.createFifoQueue = async (name) => this.createNamedQueue(name, true);
11
+ this.createStandardQueue = async (name) => this.createNamedQueue(name, {
12
+ enabled: false,
13
+ });
14
+ this.createFifoQueue = async (name, contentBasedDeduplication) => this.createNamedQueue(name, {
15
+ enabled: true,
16
+ contentBasedDeduplication: contentBasedDeduplication,
17
+ });
13
18
  this.createNamedQueue = async (name, fifo) => this.client
14
19
  .send(new client_sqs_1.CreateQueueCommand({
15
- QueueName: fifo ? `${name}.fifo` : name,
16
- Attributes: {
17
- FifoQueue: fifo ? 'true' : undefined,
18
- }
20
+ QueueName: fifo.enabled ? `${name}.fifo` : name,
21
+ Attributes: fifo.enabled
22
+ ? {
23
+ FifoQueue: "true",
24
+ ContentBasedDeduplication: fifo.contentBasedDeduplication
25
+ ? "true"
26
+ : undefined,
27
+ }
28
+ : {
29
+ FifoQueue: undefined,
30
+ },
19
31
  }))
20
32
  .then((create) => this.client
21
33
  .send(new client_sqs_1.GetQueueAttributesCommand({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yopdev/dev-server",
3
- "version": "3.0.3-beta.5",
3
+ "version": "3.0.3-beta.6",
4
4
  "scripts": {
5
5
  "compile": "tsc",
6
6
  "pretest": "npm run compile",
@@ -42,7 +42,8 @@
42
42
  "cross-spawn": "^7.0.5",
43
43
  "micromatch": "^4.0.8",
44
44
  "@babel/helpers": "^7.26.10",
45
- "tmp": "^0.2.4"
45
+ "tmp": "^0.2.4",
46
+ "@smithy/config-resolver": "^4.4.0"
46
47
  },
47
48
  "main": "dist/src/index.js",
48
49
  "exports": "./dist/src/index.js",
@@ -14,7 +14,9 @@ export const newInternalQueue = (
14
14
  name: string,
15
15
  visibility: number,
16
16
  handler: (queue: Queue) => (e: SQSEvent) => Promise<void>,
17
- fifo: boolean,
17
+ fifoConfig: {
18
+ contentBasedDeduplication: boolean
19
+ } | undefined,
18
20
  mapper?: (message: Message) => SQSRecord,
19
21
  },
20
22
  callback?: Callback<string>
@@ -22,7 +24,7 @@ export const newInternalQueue = (
22
24
  name,
23
25
  config.visibility,
24
26
  config.handler,
25
- (sqs: Sqs) => config.fifo ? sqs.createFifoQueue : sqs.createStandardQueue,
27
+ (sqs: Sqs) => config.fifoConfig === undefined ? sqs.createStandardQueue : (name) => sqs.createFifoQueue(name, config.fifoConfig.contentBasedDeduplication),
26
28
  config.mapper ?? mapToLambdaSqsRecord,
27
29
  ), callback)
28
30
 
package/src/sqs.ts CHANGED
@@ -12,18 +12,31 @@ export class Sqs {
12
12
  this.client = new SQSClient(config)
13
13
  }
14
14
 
15
- createStandardQueue = async (name: string) => this.createNamedQueue(name, false);
16
- createFifoQueue = async (name: string) => this.createNamedQueue(name, true);
15
+ createStandardQueue = async (name: string) => this.createNamedQueue(name, {
16
+ enabled: false,
17
+ });
18
+ createFifoQueue = async (name: string, contentBasedDeduplication: boolean) =>
19
+ this.createNamedQueue(name, {
20
+ enabled: true,
21
+ contentBasedDeduplication: contentBasedDeduplication,
22
+ });
17
23
 
18
- private createNamedQueue = async (name: string, fifo: boolean): Promise<Queue> => this.client
24
+ private createNamedQueue = async (name: string, fifo: FIFOConfig): Promise<Queue> => this.client
19
25
  .send(
20
26
  new CreateQueueCommand({
21
- QueueName: fifo ? `${name}.fifo` : name,
22
- Attributes: {
23
- FifoQueue: fifo ? 'true' : undefined,
24
- }
25
- }),
26
- )
27
+ QueueName: fifo.enabled ? `${name}.fifo` : name,
28
+ Attributes: fifo.enabled
29
+ ? {
30
+ FifoQueue: "true",
31
+ ContentBasedDeduplication: fifo.contentBasedDeduplication
32
+ ? "true"
33
+ : undefined,
34
+ }
35
+ : {
36
+ FifoQueue: undefined,
37
+ },
38
+ }),
39
+ )
27
40
  .then(
28
41
  (create) => this.client
29
42
  .send(
@@ -40,6 +53,15 @@ export class Sqs {
40
53
  .tap((queue) => LOGGER.debug('created %s', queue.arn))
41
54
  }
42
55
 
56
+ export type FIFOConfig =
57
+ | {
58
+ enabled: true;
59
+ contentBasedDeduplication: boolean;
60
+ }
61
+ | {
62
+ enabled: false;
63
+ };
64
+
43
65
  export type Queue = {
44
66
  arn: string;
45
67
  url: string;