@gradientedge/cdk-utils 7.16.1 → 7.18.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.
@@ -89,7 +89,7 @@ class LambdaManager {
89
89
  throw `Lambda props undefined for ${id}`;
90
90
  const functionName = `${props.functionName}-${scope.props.stage}`;
91
91
  let deadLetterQueue;
92
- if (props.deadLetterQueueEnabled && props.dlq) {
92
+ if (props.deadLetterQueueEnabled) {
93
93
  const redriveQueue = scope.sqsManager.createRedriveQueueForLambda(`${id}-rdq`, scope, props);
94
94
  deadLetterQueue = scope.sqsManager.createDeadLetterQueueForLambda(`${id}-dlq`, scope, props, redriveQueue);
95
95
  }
@@ -164,7 +164,7 @@ class LambdaManager {
164
164
  throw `Lambda props undefined for ${id}`;
165
165
  const functionName = `${props.functionName}-${scope.props.stage}`;
166
166
  let deadLetterQueue;
167
- if (props.deadLetterQueueEnabled && props.dlq) {
167
+ if (props.deadLetterQueueEnabled) {
168
168
  const redriveQueue = scope.sqsManager.createRedriveQueueForLambda(`${id}-rdq`, scope, props);
169
169
  deadLetterQueue = scope.sqsManager.createDeadLetterQueueForLambda(`${id}-dlq`, scope, props, redriveQueue);
170
170
  }
@@ -62,17 +62,17 @@ class SqsManager {
62
62
  queueName: props.queueName,
63
63
  visibilityTimeout: props.visibilityTimeoutInSecs
64
64
  ? cdk.Duration.seconds(props.visibilityTimeoutInSecs)
65
- : undefined,
65
+ : props.visibilityTimeout,
66
66
  receiveMessageWaitTime: props.receiveMessageWaitTimeInSecs
67
67
  ? cdk.Duration.seconds(props.receiveMessageWaitTimeInSecs)
68
- : undefined,
68
+ : props.receiveMessageWaitTime,
69
69
  contentBasedDeduplication: props.contentBasedDeduplication,
70
- dataKeyReuse: props.dataKeyReuseInSecs ? cdk.Duration.seconds(props.dataKeyReuseInSecs) : undefined,
70
+ dataKeyReuse: props.dataKeyReuseInSecs ? cdk.Duration.seconds(props.dataKeyReuseInSecs) : props.dataKeyReuse,
71
71
  deadLetterQueue: !deadLetterQueue
72
72
  ? undefined
73
73
  : {
74
74
  queue: deadLetterQueue,
75
- maxReceiveCount: props.maxReceiveCount,
75
+ maxReceiveCount: props.maxReceiveCount ?? 5,
76
76
  },
77
77
  deduplicationScope: props.deduplicationScope,
78
78
  deliveryDelay: props.deliveryDelayInSecs ? cdk.Duration.seconds(props.deliveryDelayInSecs) : undefined,
@@ -82,7 +82,7 @@ class SqsManager {
82
82
  fifoThroughputLimit: props.fifoThroughputLimit,
83
83
  maxMessageSizeBytes: props.maxMessageSizeBytes,
84
84
  removalPolicy: props.removalPolicy ?? cdk.RemovalPolicy.DESTROY,
85
- retentionPeriod: cdk.Duration.days(props.retentionInDays),
85
+ retentionPeriod: props.retentionInDays ? cdk.Duration.days(props.retentionInDays) : cdk.Duration.days(7),
86
86
  });
87
87
  utils.createCfnOutput(`${id}-queueArn`, scope, queue.queueArn);
88
88
  utils.createCfnOutput(`${id}-queueName`, scope, queue.queueName);
@@ -96,8 +96,6 @@ class SqsManager {
96
96
  * @param {types.LambdaProps} props the lambda properties
97
97
  */
98
98
  createRedriveQueueForLambda(id, scope, props) {
99
- if (!props.redriveq)
100
- throw `Redrive queue props for Lambda undefined`;
101
99
  return this.createQueue(`${id}`, scope, {
102
100
  ...props.redriveq,
103
101
  ...{
@@ -113,14 +111,21 @@ class SqsManager {
113
111
  * @param {sqs.IQueue} deadLetterQueue
114
112
  */
115
113
  createDeadLetterQueueForLambda(id, scope, props, deadLetterQueue) {
116
- if (!props.dlq)
117
- throw `Dead letter queue props for Lambda undefined`;
118
- return this.createQueue(`${id}`, scope, {
119
- ...props.dlq,
120
- ...{
114
+ let queueProps;
115
+ if (props.dlq) {
116
+ queueProps = {
117
+ ...props.dlq,
118
+ ...{
119
+ queueName: `${props.functionName}-dlq-${scope.props.stage}`,
120
+ },
121
+ };
122
+ }
123
+ else {
124
+ queueProps = {
121
125
  queueName: `${props.functionName}-dlq-${scope.props.stage}`,
122
- },
123
- }, deadLetterQueue);
126
+ };
127
+ }
128
+ return this.createQueue(`${id}`, scope, queueProps, deadLetterQueue);
124
129
  }
125
130
  }
126
131
  exports.SqsManager = SqsManager;
@@ -678,11 +678,11 @@ export interface ElastiCacheProps extends elasticache.CfnCacheClusterProps {
678
678
  * @subcategory Properties
679
679
  */
680
680
  export interface QueueProps extends sqs.QueueProps {
681
- maxReceiveCount: number;
682
- visibilityTimeoutInSecs: number;
683
- receiveMessageWaitTimeInSecs: number;
684
- dataKeyReuseInSecs: number;
685
- deliveryDelayInSecs: number;
686
- retentionInDays: number;
681
+ maxReceiveCount?: number;
682
+ visibilityTimeoutInSecs?: number;
683
+ receiveMessageWaitTimeInSecs?: number;
684
+ dataKeyReuseInSecs?: number;
685
+ deliveryDelayInSecs?: number;
686
+ retentionInDays?: number;
687
687
  }
688
688
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gradientedge/cdk-utils",
3
- "version": "7.16.1",
3
+ "version": "7.18.0",
4
4
  "description": "Utilities for AWS CDK provisioning",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -37,7 +37,7 @@
37
37
  "postinstall": "npx lerna run init",
38
38
  "prettier": "npx prettier --check \"**/*.{ts,json,md}\"",
39
39
  "prettify": "npx prettier --write \"**/*.{ts,json,md}\"",
40
- "test": "rimraf coverage && npx jest --ci --runInBand",
40
+ "test": "rimraf coverage && npx jest --ci --maxWorkers=100%",
41
41
  "update:deps": "ncu -u -x lerna",
42
42
  "validate": "yarn prettier && yarn test"
43
43
  },
@@ -87,7 +87,7 @@ export class LambdaManager {
87
87
  const functionName = `${props.functionName}-${scope.props.stage}`
88
88
 
89
89
  let deadLetterQueue
90
- if (props.deadLetterQueueEnabled && props.dlq) {
90
+ if (props.deadLetterQueueEnabled) {
91
91
  const redriveQueue = scope.sqsManager.createRedriveQueueForLambda(`${id}-rdq`, scope, props)
92
92
  deadLetterQueue = scope.sqsManager.createDeadLetterQueueForLambda(`${id}-dlq`, scope, props, redriveQueue)
93
93
  }
@@ -206,7 +206,7 @@ export class LambdaManager {
206
206
  const functionName = `${props.functionName}-${scope.props.stage}`
207
207
 
208
208
  let deadLetterQueue
209
- if (props.deadLetterQueueEnabled && props.dlq) {
209
+ if (props.deadLetterQueueEnabled) {
210
210
  const redriveQueue = scope.sqsManager.createRedriveQueueForLambda(`${id}-rdq`, scope, props)
211
211
  deadLetterQueue = scope.sqsManager.createDeadLetterQueueForLambda(`${id}-dlq`, scope, props, redriveQueue)
212
212
  }
@@ -39,17 +39,17 @@ export class SqsManager {
39
39
  queueName: props.queueName,
40
40
  visibilityTimeout: props.visibilityTimeoutInSecs
41
41
  ? cdk.Duration.seconds(props.visibilityTimeoutInSecs)
42
- : undefined,
42
+ : props.visibilityTimeout,
43
43
  receiveMessageWaitTime: props.receiveMessageWaitTimeInSecs
44
44
  ? cdk.Duration.seconds(props.receiveMessageWaitTimeInSecs)
45
- : undefined,
45
+ : props.receiveMessageWaitTime,
46
46
  contentBasedDeduplication: props.contentBasedDeduplication,
47
- dataKeyReuse: props.dataKeyReuseInSecs ? cdk.Duration.seconds(props.dataKeyReuseInSecs) : undefined,
47
+ dataKeyReuse: props.dataKeyReuseInSecs ? cdk.Duration.seconds(props.dataKeyReuseInSecs) : props.dataKeyReuse,
48
48
  deadLetterQueue: !deadLetterQueue
49
49
  ? undefined
50
50
  : {
51
51
  queue: deadLetterQueue,
52
- maxReceiveCount: props.maxReceiveCount,
52
+ maxReceiveCount: props.maxReceiveCount ?? 5,
53
53
  },
54
54
  deduplicationScope: props.deduplicationScope,
55
55
  deliveryDelay: props.deliveryDelayInSecs ? cdk.Duration.seconds(props.deliveryDelayInSecs) : undefined,
@@ -59,7 +59,7 @@ export class SqsManager {
59
59
  fifoThroughputLimit: props.fifoThroughputLimit,
60
60
  maxMessageSizeBytes: props.maxMessageSizeBytes,
61
61
  removalPolicy: props.removalPolicy ?? cdk.RemovalPolicy.DESTROY,
62
- retentionPeriod: cdk.Duration.days(props.retentionInDays),
62
+ retentionPeriod: props.retentionInDays ? cdk.Duration.days(props.retentionInDays) : cdk.Duration.days(7),
63
63
  })
64
64
 
65
65
  utils.createCfnOutput(`${id}-queueArn`, scope, queue.queueArn)
@@ -76,8 +76,6 @@ export class SqsManager {
76
76
  * @param {types.LambdaProps} props the lambda properties
77
77
  */
78
78
  public createRedriveQueueForLambda(id: string, scope: common.CommonConstruct, props: types.LambdaProps) {
79
- if (!props.redriveq) throw `Redrive queue props for Lambda undefined`
80
-
81
79
  return this.createQueue(`${id}`, scope, {
82
80
  ...props.redriveq,
83
81
  ...{
@@ -99,18 +97,20 @@ export class SqsManager {
99
97
  props: types.LambdaProps,
100
98
  deadLetterQueue: sqs.IQueue
101
99
  ) {
102
- if (!props.dlq) throw `Dead letter queue props for Lambda undefined`
103
-
104
- return this.createQueue(
105
- `${id}`,
106
- scope,
107
- {
100
+ let queueProps
101
+ if (props.dlq) {
102
+ queueProps = {
108
103
  ...props.dlq,
109
104
  ...{
110
105
  queueName: `${props.functionName}-dlq-${scope.props.stage}`,
111
106
  },
112
- },
113
- deadLetterQueue
114
- )
107
+ }
108
+ } else {
109
+ queueProps = {
110
+ queueName: `${props.functionName}-dlq-${scope.props.stage}`,
111
+ }
112
+ }
113
+
114
+ return this.createQueue(`${id}`, scope, queueProps, deadLetterQueue)
115
115
  }
116
116
  }
@@ -721,10 +721,10 @@ export interface ElastiCacheProps extends elasticache.CfnCacheClusterProps {}
721
721
  * @subcategory Properties
722
722
  */
723
723
  export interface QueueProps extends sqs.QueueProps {
724
- maxReceiveCount: number
725
- visibilityTimeoutInSecs: number
726
- receiveMessageWaitTimeInSecs: number
727
- dataKeyReuseInSecs: number
728
- deliveryDelayInSecs: number
729
- retentionInDays: number
724
+ maxReceiveCount?: number
725
+ visibilityTimeoutInSecs?: number
726
+ receiveMessageWaitTimeInSecs?: number
727
+ dataKeyReuseInSecs?: number
728
+ deliveryDelayInSecs?: number
729
+ retentionInDays?: number
730
730
  }