UNPKG

@aws-community/self-destruct

Version:

Ephemeral Stacks! A CDK Stack and Construct that will self-destruct after a specified time period.

28 lines 3.45 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.SelfDestructAspect = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const aws_cdk_lib_1 = require("aws-cdk-lib"); const aws_s3_1 = require("aws-cdk-lib/aws-s3"); class SelfDestructAspect { visit(node) { if (aws_cdk_lib_1.CfnResource.isCfnResource(node)) { node.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.DESTROY); } if (node instanceof aws_s3_1.Bucket) { if (!node.node.tryFindChild('AutoDeleteObjectsCustomResource')) { throw new Error('You are attempting to create a bucket with the Level 2 Bucket construct in an ephemeral stack without autoDeleteObjects enabled.'); } } else if (node instanceof aws_s3_1.CfnBucket) { if (!node.node.scope?.node.tryFindChild('AutoDeleteObjectsCustomResource')) { throw new Error('You are attempting to create a bucket with the Level 1 CfnBucket construct in an ephemeral stack.'); } } } } _a = JSII_RTTI_SYMBOL_1; SelfDestructAspect[_a] = { fqn: "@aws-community/self-destruct.SelfDestructAspect", version: "1.1.0" }; exports.SelfDestructAspect = SelfDestructAspect; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZi1kZXN0cnVjdC1hc3BlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VsZi1kZXN0cnVjdC1hc3BlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBa0U7QUFDbEUsK0NBQXVEO0FBR3ZELE1BQWEsa0JBQWtCO0lBQ3RCLEtBQUssQ0FBRSxJQUFnQjtRQUM1QixJQUFJLHlCQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywyQkFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsSUFBSSxJQUFJLFlBQVksZUFBTSxFQUFFO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFO2dCQUM5RCxNQUFNLElBQUksS0FBSyxDQUFDLGtJQUFrSSxDQUFDLENBQUM7YUFDcko7U0FDRjthQUFNLElBQUksSUFBSSxZQUFZLGtCQUFTLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsaUNBQWlDLENBQUMsRUFBRTtnQkFDMUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtR0FBbUcsQ0FBQyxDQUFDO2FBQ3RIO1NBQ0Y7SUFDSCxDQUFDOzs7O0FBZFUsZ0RBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFzcGVjdCwgQ2ZuUmVzb3VyY2UsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCdWNrZXQsIENmbkJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGNsYXNzIFNlbGZEZXN0cnVjdEFzcGVjdCBpbXBsZW1lbnRzIElBc3BlY3Qge1xuICBwdWJsaWMgdmlzaXQgKG5vZGU6IElDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICBpZiAoQ2ZuUmVzb3VyY2UuaXNDZm5SZXNvdXJjZShub2RlKSkge1xuICAgICAgbm9kZS5hcHBseVJlbW92YWxQb2xpY3koUmVtb3ZhbFBvbGljeS5ERVNUUk9ZKTtcbiAgICB9XG4gICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBCdWNrZXQpIHtcbiAgICAgIGlmICghbm9kZS5ub2RlLnRyeUZpbmRDaGlsZCgnQXV0b0RlbGV0ZU9iamVjdHNDdXN0b21SZXNvdXJjZScpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGFyZSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSBhIGJ1Y2tldCB3aXRoIHRoZSBMZXZlbCAyIEJ1Y2tldCBjb25zdHJ1Y3QgaW4gYW4gZXBoZW1lcmFsIHN0YWNrIHdpdGhvdXQgYXV0b0RlbGV0ZU9iamVjdHMgZW5hYmxlZC4nKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5vZGUgaW5zdGFuY2VvZiBDZm5CdWNrZXQpIHtcbiAgICAgIGlmICghbm9kZS5ub2RlLnNjb3BlPy5ub2RlLnRyeUZpbmRDaGlsZCgnQXV0b0RlbGV0ZU9iamVjdHNDdXN0b21SZXNvdXJjZScpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGFyZSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSBhIGJ1Y2tldCB3aXRoIHRoZSBMZXZlbCAxIENmbkJ1Y2tldCBjb25zdHJ1Y3QgaW4gYW4gZXBoZW1lcmFsIHN0YWNrLicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19