@incloodsolutions/devkit 0.0.1 → 0.0.3

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.
Files changed (154) hide show
  1. package/README.md +42 -16
  2. package/dist/aws/cdk/constructs/api-gateway-construct.cjs +95 -0
  3. package/dist/aws/cdk/constructs/api-gateway-construct.cjs.map +1 -0
  4. package/dist/aws/cdk/constructs/api-gateway-construct.d.cts +80 -0
  5. package/dist/aws/cdk/constructs/api-gateway-construct.d.ts +80 -0
  6. package/dist/aws/cdk/constructs/api-gateway-construct.js +93 -0
  7. package/dist/aws/cdk/constructs/api-gateway-construct.js.map +1 -0
  8. package/dist/aws/cdk/constructs/api-gateway-v2-construct.cjs +77 -0
  9. package/dist/aws/cdk/constructs/api-gateway-v2-construct.cjs.map +1 -0
  10. package/dist/aws/cdk/constructs/api-gateway-v2-construct.d.cts +55 -0
  11. package/dist/aws/cdk/constructs/api-gateway-v2-construct.d.ts +55 -0
  12. package/dist/aws/cdk/constructs/api-gateway-v2-construct.js +75 -0
  13. package/dist/aws/cdk/constructs/api-gateway-v2-construct.js.map +1 -0
  14. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.cjs +65 -0
  15. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.cjs.map +1 -0
  16. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.d.cts +73 -0
  17. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.d.ts +73 -0
  18. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.js +63 -0
  19. package/dist/aws/cdk/constructs/api-gateway-websocket-construct.js.map +1 -0
  20. package/dist/aws/cdk/constructs/cloudfront-construct.cjs +68 -0
  21. package/dist/aws/cdk/constructs/cloudfront-construct.cjs.map +1 -0
  22. package/dist/aws/cdk/constructs/cloudfront-construct.d.cts +36 -0
  23. package/dist/aws/cdk/constructs/cloudfront-construct.d.ts +36 -0
  24. package/dist/aws/cdk/constructs/cloudfront-construct.js +66 -0
  25. package/dist/aws/cdk/constructs/cloudfront-construct.js.map +1 -0
  26. package/dist/aws/cdk/constructs/cloudwatch-construct.cjs +43 -0
  27. package/dist/aws/cdk/constructs/cloudwatch-construct.cjs.map +1 -0
  28. package/dist/aws/cdk/constructs/cloudwatch-construct.d.cts +36 -0
  29. package/dist/aws/cdk/constructs/cloudwatch-construct.d.ts +36 -0
  30. package/dist/aws/cdk/constructs/cloudwatch-construct.js +41 -0
  31. package/dist/aws/cdk/constructs/cloudwatch-construct.js.map +1 -0
  32. package/dist/aws/cdk/constructs/dynamo-db-construct.cjs +113 -0
  33. package/dist/aws/cdk/constructs/dynamo-db-construct.cjs.map +1 -0
  34. package/dist/aws/cdk/constructs/dynamo-db-construct.d.cts +53 -0
  35. package/dist/aws/cdk/constructs/dynamo-db-construct.d.ts +53 -0
  36. package/dist/aws/cdk/constructs/dynamo-db-construct.js +111 -0
  37. package/dist/aws/cdk/constructs/dynamo-db-construct.js.map +1 -0
  38. package/dist/aws/cdk/constructs/event-bridge-construct.cjs +47 -0
  39. package/dist/aws/cdk/constructs/event-bridge-construct.cjs.map +1 -0
  40. package/dist/aws/cdk/constructs/event-bridge-construct.d.cts +41 -0
  41. package/dist/aws/cdk/constructs/event-bridge-construct.d.ts +41 -0
  42. package/dist/aws/cdk/constructs/event-bridge-construct.js +45 -0
  43. package/dist/aws/cdk/constructs/event-bridge-construct.js.map +1 -0
  44. package/dist/aws/cdk/constructs/index.cjs +881 -0
  45. package/dist/aws/cdk/constructs/index.cjs.map +1 -0
  46. package/dist/aws/cdk/constructs/index.d.cts +34 -0
  47. package/dist/aws/cdk/constructs/index.d.ts +34 -0
  48. package/dist/aws/cdk/constructs/index.js +863 -0
  49. package/dist/aws/cdk/constructs/index.js.map +1 -0
  50. package/dist/aws/cdk/constructs/lambda-authorizer-construct.cjs +37 -0
  51. package/dist/aws/cdk/constructs/lambda-authorizer-construct.cjs.map +1 -0
  52. package/dist/aws/cdk/constructs/lambda-authorizer-construct.d.cts +44 -0
  53. package/dist/aws/cdk/constructs/lambda-authorizer-construct.d.ts +44 -0
  54. package/dist/aws/cdk/constructs/lambda-authorizer-construct.js +35 -0
  55. package/dist/aws/cdk/constructs/lambda-authorizer-construct.js.map +1 -0
  56. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.cjs +47 -0
  57. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.cjs.map +1 -0
  58. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.d.cts +45 -0
  59. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.d.ts +45 -0
  60. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.js +45 -0
  61. package/dist/aws/cdk/constructs/lambda-authorizer-v2-construct.js.map +1 -0
  62. package/dist/aws/cdk/constructs/lambda-construct.cjs +82 -0
  63. package/dist/aws/cdk/constructs/lambda-construct.cjs.map +1 -0
  64. package/dist/aws/cdk/constructs/lambda-construct.d.cts +37 -0
  65. package/dist/aws/cdk/constructs/lambda-construct.d.ts +37 -0
  66. package/dist/aws/cdk/constructs/lambda-construct.js +80 -0
  67. package/dist/aws/cdk/constructs/lambda-construct.js.map +1 -0
  68. package/dist/aws/cdk/constructs/lambda-layer-construct.cjs +72 -0
  69. package/dist/aws/cdk/constructs/lambda-layer-construct.cjs.map +1 -0
  70. package/dist/aws/cdk/constructs/lambda-layer-construct.d.cts +52 -0
  71. package/dist/aws/cdk/constructs/lambda-layer-construct.d.ts +52 -0
  72. package/dist/aws/cdk/constructs/lambda-layer-construct.js +70 -0
  73. package/dist/aws/cdk/constructs/lambda-layer-construct.js.map +1 -0
  74. package/dist/aws/cdk/constructs/role-policy-construct.cjs +53 -0
  75. package/dist/aws/cdk/constructs/role-policy-construct.cjs.map +1 -0
  76. package/dist/aws/cdk/constructs/role-policy-construct.d.cts +44 -0
  77. package/dist/aws/cdk/constructs/role-policy-construct.d.ts +44 -0
  78. package/dist/aws/cdk/constructs/role-policy-construct.js +51 -0
  79. package/dist/aws/cdk/constructs/role-policy-construct.js.map +1 -0
  80. package/dist/aws/cdk/constructs/s3-construct.cjs +38 -0
  81. package/dist/aws/cdk/constructs/s3-construct.cjs.map +1 -0
  82. package/dist/aws/cdk/constructs/s3-construct.d.cts +36 -0
  83. package/dist/aws/cdk/constructs/s3-construct.d.ts +36 -0
  84. package/dist/aws/cdk/constructs/s3-construct.js +36 -0
  85. package/dist/aws/cdk/constructs/s3-construct.js.map +1 -0
  86. package/dist/aws/cdk/constructs/s3-deployment-construct.cjs +168 -0
  87. package/dist/aws/cdk/constructs/s3-deployment-construct.cjs.map +1 -0
  88. package/dist/aws/cdk/constructs/s3-deployment-construct.d.cts +72 -0
  89. package/dist/aws/cdk/constructs/s3-deployment-construct.d.ts +72 -0
  90. package/dist/aws/cdk/constructs/s3-deployment-construct.js +166 -0
  91. package/dist/aws/cdk/constructs/s3-deployment-construct.js.map +1 -0
  92. package/dist/aws/cdk/constructs/sns-construct.cjs +43 -0
  93. package/dist/aws/cdk/constructs/sns-construct.cjs.map +1 -0
  94. package/dist/aws/cdk/constructs/sns-construct.d.cts +45 -0
  95. package/dist/aws/cdk/constructs/sns-construct.d.ts +45 -0
  96. package/dist/aws/cdk/constructs/sns-construct.js +41 -0
  97. package/dist/aws/cdk/constructs/sns-construct.js.map +1 -0
  98. package/dist/aws/cdk/constructs/sqs-construct.cjs +55 -0
  99. package/dist/aws/cdk/constructs/sqs-construct.cjs.map +1 -0
  100. package/dist/aws/cdk/constructs/sqs-construct.d.cts +52 -0
  101. package/dist/aws/cdk/constructs/sqs-construct.d.ts +52 -0
  102. package/dist/aws/cdk/constructs/sqs-construct.js +53 -0
  103. package/dist/aws/cdk/constructs/sqs-construct.js.map +1 -0
  104. package/dist/aws/cdk/constructs/vpc-construct.cjs +33 -0
  105. package/dist/aws/cdk/constructs/vpc-construct.cjs.map +1 -0
  106. package/dist/aws/cdk/constructs/vpc-construct.d.cts +34 -0
  107. package/dist/aws/cdk/constructs/vpc-construct.d.ts +34 -0
  108. package/dist/aws/cdk/constructs/vpc-construct.js +31 -0
  109. package/dist/aws/cdk/constructs/vpc-construct.js.map +1 -0
  110. package/dist/aws/cdk/index.cjs +881 -0
  111. package/dist/aws/cdk/index.cjs.map +1 -0
  112. package/dist/aws/cdk/index.d.cts +34 -0
  113. package/dist/aws/cdk/index.d.ts +34 -0
  114. package/dist/aws/cdk/index.js +863 -0
  115. package/dist/aws/cdk/index.js.map +1 -0
  116. package/dist/aws/cli/index.cjs +4 -0
  117. package/dist/aws/cli/index.cjs.map +1 -0
  118. package/dist/aws/cli/index.d.cts +2 -0
  119. package/dist/aws/cli/index.d.ts +2 -0
  120. package/dist/aws/cli/index.js +3 -0
  121. package/dist/aws/cli/index.js.map +1 -0
  122. package/dist/aws/index.cjs +881 -0
  123. package/dist/aws/index.cjs.map +1 -0
  124. package/dist/aws/index.d.cts +34 -0
  125. package/dist/aws/index.d.ts +34 -0
  126. package/dist/aws/index.js +863 -0
  127. package/dist/aws/index.js.map +1 -0
  128. package/dist/aws/types/index.cjs +4 -0
  129. package/dist/aws/types/index.cjs.map +1 -0
  130. package/dist/aws/types/index.d.cts +18 -0
  131. package/dist/aws/types/index.d.ts +18 -0
  132. package/dist/aws/types/index.js +3 -0
  133. package/dist/aws/types/index.js.map +1 -0
  134. package/dist/index.d.cts +34 -755
  135. package/dist/index.d.ts +34 -755
  136. package/dist/lint/index.cjs +4 -0
  137. package/dist/lint/index.cjs.map +1 -0
  138. package/dist/lint/index.d.cts +2 -0
  139. package/dist/lint/index.d.ts +2 -0
  140. package/dist/lint/index.js +3 -0
  141. package/dist/lint/index.js.map +1 -0
  142. package/dist/prettier/index.cjs +4 -0
  143. package/dist/prettier/index.cjs.map +1 -0
  144. package/dist/prettier/index.d.cts +2 -0
  145. package/dist/prettier/index.d.ts +2 -0
  146. package/dist/prettier/index.js +3 -0
  147. package/dist/prettier/index.js.map +1 -0
  148. package/dist/utility/index.cjs +4 -0
  149. package/dist/utility/index.cjs.map +1 -0
  150. package/dist/utility/index.d.cts +2 -0
  151. package/dist/utility/index.d.ts +2 -0
  152. package/dist/utility/index.js +3 -0
  153. package/dist/utility/index.js.map +1 -0
  154. package/package.json +8 -3
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ var constructs = require('constructs');
4
+ var awsCdkLib = require('aws-cdk-lib');
5
+ var awsEvents = require('aws-cdk-lib/aws-events');
6
+ var awsEventsTargets = require('aws-cdk-lib/aws-events-targets');
7
+
8
+ var __defProp = Object.defineProperty;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ var BaseEventBridgeConstruct = class extends constructs.Construct {
11
+ static {
12
+ __name(this, "BaseEventBridgeConstruct");
13
+ }
14
+ /** The created EventBridge rule instance */
15
+ eventSchedule;
16
+ /**
17
+ * @param scope Parent construct
18
+ * @param id Unique construct identifier
19
+ * @param props Configuration for rule and target functions
20
+ */
21
+ constructor(scope, id, props) {
22
+ super(scope, id);
23
+ this.eventSchedule = new awsEvents.Rule(this, id, {
24
+ ...props.options?.eventBridgeOptions,
25
+ /** Default description if not explicitly provided */
26
+ description: props?.options?.eventBridgeOptions?.description || "An Event-bridge rule"
27
+ });
28
+ if (props.options?.targetFunctions?.length) {
29
+ props.options.targetFunctions.forEach((targetFunction) => {
30
+ this.eventSchedule.addTarget(
31
+ /**
32
+ * Lambda target integration
33
+ */
34
+ new awsEventsTargets.LambdaFunction(targetFunction)
35
+ );
36
+ });
37
+ }
38
+ this.eventSchedule.applyRemovalPolicy(awsCdkLib.RemovalPolicy.DESTROY);
39
+ new awsCdkLib.CfnOutput(this, "EventBridgeArn", {
40
+ value: this.eventSchedule.ruleArn
41
+ });
42
+ }
43
+ };
44
+
45
+ exports.BaseEventBridgeConstruct = BaseEventBridgeConstruct;
46
+ //# sourceMappingURL=event-bridge-construct.cjs.map
47
+ //# sourceMappingURL=event-bridge-construct.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/aws/cdk/constructs/event-bridge-construct.ts"],"names":["Construct","Rule","LambdaFunction","RemovalPolicy","CfnOutput"],"mappings":";;;;;;;;;AAgCO,IAAM,wBAAA,GAAN,cAAuCA,oBAAA,CAAU;AAAA,EAhCxD;AAgCwD,IAAA,MAAA,CAAA,IAAA,EAAA,0BAAA,CAAA;AAAA;AAAA;AAAA,EAE9C,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAAmC;AAC5E,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAIC,cAAA,CAAK,IAAA,EAAM,EAAA,EAAI;AAAA,MACvC,GAAG,MAAM,OAAA,EAAS,kBAAA;AAAA;AAAA,MAGlB,WAAA,EACC,KAAA,EAAO,OAAA,EAAS,kBAAA,EAAoB,WAAA,IACjC;AAAA,KACJ,CAAA;AAKD,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,eAAA,EAAiB,MAAA,EAAQ;AAC3C,MAAA,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,OAAA,CAAQ,CAAC,cAAA,KAAmB;AACzD,QAAA,IAAA,CAAK,aAAA,CAAc,SAAA;AAAA;AAAA;AAAA;AAAA,UAIlB,IAAIC,gCAAe,cAAc;AAAA,SAClC;AAAA,MACD,CAAC,CAAA;AAAA,IACF;AAKA,IAAA,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmBC,uBAAA,CAAc,OAAO,CAAA;AAK3D,IAAA,IAAIC,mBAAA,CAAU,MAAM,gBAAA,EAAkB;AAAA,MACrC,KAAA,EAAO,KAAK,aAAA,CAAc;AAAA,KAC1B,CAAA;AAAA,EACF;AACD","file":"event-bridge-construct.cjs","sourcesContent":["import { Construct } from 'constructs';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport { CfnOutput, RemovalPolicy } from 'aws-cdk-lib';\nimport { Rule, RuleProps } from 'aws-cdk-lib/aws-events';\nimport { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseEventBridgeConstruct\n *\n * Provides configuration for:\n * - EventBridge rule creation\n * - Target Lambda functions\n */\ninterface IEventBridgeConstructProps extends Omit<IBaseCdkConstructProps<{\n\t/** Lambda functions to be triggered by the rule */\n\treadonly targetFunctions: Function[];\n\n\t/** EventBridge rule configuration */\n\treadonly eventBridgeOptions: RuleProps;\n}>, 'appName' | 'stage' | 'stackName'> { }\n\n/**\n * CDK construct for EventBridge rule\n *\n * Responsibilities:\n * - Creates an EventBridge rule with configurable options\n * - Attaches one or more Lambda targets\n * - Applies a removal policy\n * - Exposes the rule ARN as a CloudFormation output\n */\nexport class BaseEventBridgeConstruct extends Construct {\n\t/** The created EventBridge rule instance */\n\treadonly eventSchedule: Rule;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for rule and target functions\n\t */\n\tconstructor(scope: Construct, id: string, props: IEventBridgeConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.eventSchedule = new Rule(this, id, {\n\t\t\t...props.options?.eventBridgeOptions,\n\n\t\t\t/** Default description if not explicitly provided */\n\t\t\tdescription:\n\t\t\t\tprops?.options?.eventBridgeOptions?.description\n\t\t\t\t|| 'An Event-bridge rule'\n\t\t});\n\n\t\t/**\n\t\t * Attach Lambda targets to the rule\n\t\t */\n\t\tif (props.options?.targetFunctions?.length) {\n\t\t\tprops.options.targetFunctions.forEach((targetFunction) => {\n\t\t\t\tthis.eventSchedule.addTarget(\n\t\t\t\t\t/**\n\t\t\t\t\t * Lambda target integration\n\t\t\t\t\t */\n\t\t\t\t\tnew LambdaFunction(targetFunction)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Apply removal policy (useful for non-production environments)\n\t\t */\n\t\tthis.eventSchedule.applyRemovalPolicy(RemovalPolicy.DESTROY);\n\n\t\t/**\n\t\t * CloudFormation output exposing the rule ARN\n\t\t */\n\t\tnew CfnOutput(this, 'EventBridgeArn', {\n\t\t\tvalue: this.eventSchedule.ruleArn\n\t\t});\n\t}\n}"]}
@@ -0,0 +1,41 @@
1
+ import { Construct } from 'constructs';
2
+ import { Function } from 'aws-cdk-lib/aws-lambda';
3
+ import { Rule, RuleProps } from 'aws-cdk-lib/aws-events';
4
+ import { IBaseCdkConstructProps } from '../../types/index.cjs';
5
+ import '@incloodsolutions/toolkit';
6
+
7
+ /**
8
+ * Props for BaseEventBridgeConstruct
9
+ *
10
+ * Provides configuration for:
11
+ * - EventBridge rule creation
12
+ * - Target Lambda functions
13
+ */
14
+ interface IEventBridgeConstructProps extends Omit<IBaseCdkConstructProps<{
15
+ /** Lambda functions to be triggered by the rule */
16
+ readonly targetFunctions: Function[];
17
+ /** EventBridge rule configuration */
18
+ readonly eventBridgeOptions: RuleProps;
19
+ }>, 'appName' | 'stage' | 'stackName'> {
20
+ }
21
+ /**
22
+ * CDK construct for EventBridge rule
23
+ *
24
+ * Responsibilities:
25
+ * - Creates an EventBridge rule with configurable options
26
+ * - Attaches one or more Lambda targets
27
+ * - Applies a removal policy
28
+ * - Exposes the rule ARN as a CloudFormation output
29
+ */
30
+ declare class BaseEventBridgeConstruct extends Construct {
31
+ /** The created EventBridge rule instance */
32
+ readonly eventSchedule: Rule;
33
+ /**
34
+ * @param scope Parent construct
35
+ * @param id Unique construct identifier
36
+ * @param props Configuration for rule and target functions
37
+ */
38
+ constructor(scope: Construct, id: string, props: IEventBridgeConstructProps);
39
+ }
40
+
41
+ export { BaseEventBridgeConstruct };
@@ -0,0 +1,41 @@
1
+ import { Construct } from 'constructs';
2
+ import { Function } from 'aws-cdk-lib/aws-lambda';
3
+ import { Rule, RuleProps } from 'aws-cdk-lib/aws-events';
4
+ import { IBaseCdkConstructProps } from '../../types/index.js';
5
+ import '@incloodsolutions/toolkit';
6
+
7
+ /**
8
+ * Props for BaseEventBridgeConstruct
9
+ *
10
+ * Provides configuration for:
11
+ * - EventBridge rule creation
12
+ * - Target Lambda functions
13
+ */
14
+ interface IEventBridgeConstructProps extends Omit<IBaseCdkConstructProps<{
15
+ /** Lambda functions to be triggered by the rule */
16
+ readonly targetFunctions: Function[];
17
+ /** EventBridge rule configuration */
18
+ readonly eventBridgeOptions: RuleProps;
19
+ }>, 'appName' | 'stage' | 'stackName'> {
20
+ }
21
+ /**
22
+ * CDK construct for EventBridge rule
23
+ *
24
+ * Responsibilities:
25
+ * - Creates an EventBridge rule with configurable options
26
+ * - Attaches one or more Lambda targets
27
+ * - Applies a removal policy
28
+ * - Exposes the rule ARN as a CloudFormation output
29
+ */
30
+ declare class BaseEventBridgeConstruct extends Construct {
31
+ /** The created EventBridge rule instance */
32
+ readonly eventSchedule: Rule;
33
+ /**
34
+ * @param scope Parent construct
35
+ * @param id Unique construct identifier
36
+ * @param props Configuration for rule and target functions
37
+ */
38
+ constructor(scope: Construct, id: string, props: IEventBridgeConstructProps);
39
+ }
40
+
41
+ export { BaseEventBridgeConstruct };
@@ -0,0 +1,45 @@
1
+ import { Construct } from 'constructs';
2
+ import { RemovalPolicy, CfnOutput } from 'aws-cdk-lib';
3
+ import { Rule } from 'aws-cdk-lib/aws-events';
4
+ import { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var BaseEventBridgeConstruct = class extends Construct {
9
+ static {
10
+ __name(this, "BaseEventBridgeConstruct");
11
+ }
12
+ /** The created EventBridge rule instance */
13
+ eventSchedule;
14
+ /**
15
+ * @param scope Parent construct
16
+ * @param id Unique construct identifier
17
+ * @param props Configuration for rule and target functions
18
+ */
19
+ constructor(scope, id, props) {
20
+ super(scope, id);
21
+ this.eventSchedule = new Rule(this, id, {
22
+ ...props.options?.eventBridgeOptions,
23
+ /** Default description if not explicitly provided */
24
+ description: props?.options?.eventBridgeOptions?.description || "An Event-bridge rule"
25
+ });
26
+ if (props.options?.targetFunctions?.length) {
27
+ props.options.targetFunctions.forEach((targetFunction) => {
28
+ this.eventSchedule.addTarget(
29
+ /**
30
+ * Lambda target integration
31
+ */
32
+ new LambdaFunction(targetFunction)
33
+ );
34
+ });
35
+ }
36
+ this.eventSchedule.applyRemovalPolicy(RemovalPolicy.DESTROY);
37
+ new CfnOutput(this, "EventBridgeArn", {
38
+ value: this.eventSchedule.ruleArn
39
+ });
40
+ }
41
+ };
42
+
43
+ export { BaseEventBridgeConstruct };
44
+ //# sourceMappingURL=event-bridge-construct.js.map
45
+ //# sourceMappingURL=event-bridge-construct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/aws/cdk/constructs/event-bridge-construct.ts"],"names":[],"mappings":";;;;;;;AAgCO,IAAM,wBAAA,GAAN,cAAuC,SAAA,CAAU;AAAA,EAhCxD;AAgCwD,IAAA,MAAA,CAAA,IAAA,EAAA,0BAAA,CAAA;AAAA;AAAA;AAAA,EAE9C,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOT,WAAA,CAAY,KAAA,EAAkB,EAAA,EAAY,KAAA,EAAmC;AAC5E,IAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAEf,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAI,IAAA,CAAK,IAAA,EAAM,EAAA,EAAI;AAAA,MACvC,GAAG,MAAM,OAAA,EAAS,kBAAA;AAAA;AAAA,MAGlB,WAAA,EACC,KAAA,EAAO,OAAA,EAAS,kBAAA,EAAoB,WAAA,IACjC;AAAA,KACJ,CAAA;AAKD,IAAA,IAAI,KAAA,CAAM,OAAA,EAAS,eAAA,EAAiB,MAAA,EAAQ;AAC3C,MAAA,KAAA,CAAM,OAAA,CAAQ,eAAA,CAAgB,OAAA,CAAQ,CAAC,cAAA,KAAmB;AACzD,QAAA,IAAA,CAAK,aAAA,CAAc,SAAA;AAAA;AAAA;AAAA;AAAA,UAIlB,IAAI,eAAe,cAAc;AAAA,SAClC;AAAA,MACD,CAAC,CAAA;AAAA,IACF;AAKA,IAAA,IAAA,CAAK,aAAA,CAAc,kBAAA,CAAmB,aAAA,CAAc,OAAO,CAAA;AAK3D,IAAA,IAAI,SAAA,CAAU,MAAM,gBAAA,EAAkB;AAAA,MACrC,KAAA,EAAO,KAAK,aAAA,CAAc;AAAA,KAC1B,CAAA;AAAA,EACF;AACD","file":"event-bridge-construct.js","sourcesContent":["import { Construct } from 'constructs';\nimport { Function } from 'aws-cdk-lib/aws-lambda';\nimport { CfnOutput, RemovalPolicy } from 'aws-cdk-lib';\nimport { Rule, RuleProps } from 'aws-cdk-lib/aws-events';\nimport { LambdaFunction } from 'aws-cdk-lib/aws-events-targets';\n\nimport { IBaseCdkConstructProps } from '../../types';\n\n/**\n * Props for BaseEventBridgeConstruct\n *\n * Provides configuration for:\n * - EventBridge rule creation\n * - Target Lambda functions\n */\ninterface IEventBridgeConstructProps extends Omit<IBaseCdkConstructProps<{\n\t/** Lambda functions to be triggered by the rule */\n\treadonly targetFunctions: Function[];\n\n\t/** EventBridge rule configuration */\n\treadonly eventBridgeOptions: RuleProps;\n}>, 'appName' | 'stage' | 'stackName'> { }\n\n/**\n * CDK construct for EventBridge rule\n *\n * Responsibilities:\n * - Creates an EventBridge rule with configurable options\n * - Attaches one or more Lambda targets\n * - Applies a removal policy\n * - Exposes the rule ARN as a CloudFormation output\n */\nexport class BaseEventBridgeConstruct extends Construct {\n\t/** The created EventBridge rule instance */\n\treadonly eventSchedule: Rule;\n\n\t/**\n\t * @param scope Parent construct\n\t * @param id Unique construct identifier\n\t * @param props Configuration for rule and target functions\n\t */\n\tconstructor(scope: Construct, id: string, props: IEventBridgeConstructProps) {\n\t\tsuper(scope, id);\n\n\t\tthis.eventSchedule = new Rule(this, id, {\n\t\t\t...props.options?.eventBridgeOptions,\n\n\t\t\t/** Default description if not explicitly provided */\n\t\t\tdescription:\n\t\t\t\tprops?.options?.eventBridgeOptions?.description\n\t\t\t\t|| 'An Event-bridge rule'\n\t\t});\n\n\t\t/**\n\t\t * Attach Lambda targets to the rule\n\t\t */\n\t\tif (props.options?.targetFunctions?.length) {\n\t\t\tprops.options.targetFunctions.forEach((targetFunction) => {\n\t\t\t\tthis.eventSchedule.addTarget(\n\t\t\t\t\t/**\n\t\t\t\t\t * Lambda target integration\n\t\t\t\t\t */\n\t\t\t\t\tnew LambdaFunction(targetFunction)\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\t/**\n\t\t * Apply removal policy (useful for non-production environments)\n\t\t */\n\t\tthis.eventSchedule.applyRemovalPolicy(RemovalPolicy.DESTROY);\n\n\t\t/**\n\t\t * CloudFormation output exposing the rule ARN\n\t\t */\n\t\tnew CfnOutput(this, 'EventBridgeArn', {\n\t\t\tvalue: this.eventSchedule.ruleArn\n\t\t});\n\t}\n}"]}