UNPKG

@cdkx/web-application

Version:

Static web application hosting related constructs

44 lines 7.38 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define("@cdkx/web-application/constructs/web-application.construct", ["require", "exports", "@aws-cdk/core", "@cdkx/web-application/facades/create-origin-access-identity", "@cdkx/web-application/facades/create-origin-bucket", "@cdkx/web-application/facades/create-cloudfront-web-distribution", "@cdkx/web-application/facades/get-viewer-certificate", "@cdkx/web-application/facades/add-cname-records", "@cdkx/web-application/facades/create-dynamic-config-parameter"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebApplication = void 0; const core_1 = require("@aws-cdk/core"); const create_origin_access_identity_1 = require("@cdkx/web-application/facades/create-origin-access-identity"); const create_origin_bucket_1 = require("@cdkx/web-application/facades/create-origin-bucket"); const create_cloudfront_web_distribution_1 = require("@cdkx/web-application/facades/create-cloudfront-web-distribution"); const get_viewer_certificate_1 = require("@cdkx/web-application/facades/get-viewer-certificate"); const add_cname_records_1 = require("@cdkx/web-application/facades/add-cname-records"); const create_dynamic_config_parameter_1 = require("@cdkx/web-application/facades/create-dynamic-config-parameter"); class WebApplication extends core_1.Construct { constructor(scope, id, props) { super(scope, id); const { aliases, hostedZone, domainNameRegistrar } = props; const originBucket = create_origin_bucket_1.createOriginBucket(this, props); const identity = create_origin_access_identity_1.createOriginAccessIdentity(this, props); originBucket.grantRead(identity); const viewerCertificate = get_viewer_certificate_1.getViewerCertificate(this, props); const distribution = create_cloudfront_web_distribution_1.createCloudfrontWebDistribution(this, props, { s3BucketSource: originBucket, originAccessIdentity: identity, viewerCertificate, }); this.configParameter = create_dynamic_config_parameter_1.createDynamicConfigParameter(this, props); add_cname_records_1.addCnameRecords(this, { distribution, aliases, hostedZone, domainNameRegistrar, }); } } exports.WebApplication = WebApplication; }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWFwcGxpY2F0aW9uLmNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dlYi1hcHBsaWNhdGlvbi9jb25zdHJ1Y3RzL3dlYi1hcHBsaWNhdGlvbi5jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQ0Esd0NBQXlEO0lBS3pELGdIQUFzRjtJQUN0Riw4RkFBcUU7SUFDckUsMEhBQWdHO0lBQ2hHLGtHQUF5RTtJQUN6RSx3RkFBK0Q7SUFDL0Qsb0hBQTBGO0lBMkIxRixNQUFhLGNBQWUsU0FBUSxnQkFBUztRQUUzQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1lBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFakIsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxLQUFLLENBQUM7WUFFM0QsTUFBTSxZQUFZLEdBQUcseUNBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE1BQU0sUUFBUSxHQUFHLDBEQUEwQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RCxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWpDLE1BQU0saUJBQWlCLEdBQUcsNkNBQW9CLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVELE1BQU0sWUFBWSxHQUFHLG9FQUErQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQ2hFLGNBQWMsRUFBRSxZQUFZO2dCQUM1QixvQkFBb0IsRUFBRSxRQUFRO2dCQUM5QixpQkFBaUI7YUFDbEIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGVBQWUsR0FBRyw4REFBNEIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFakUsbUNBQWUsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3BCLFlBQVk7Z0JBQ1osT0FBTztnQkFDUCxVQUFVO2dCQUNWLG1CQUFtQjthQUNwQixDQUFDLENBQUM7UUFDTCxDQUFDO0tBQ0Y7SUEzQkQsd0NBMkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnQGF3cy1jZGsvYXdzLXNzbSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIFJlbW92YWxQb2xpY3kgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IElIb3N0ZWRab25lIH0gZnJvbSAnQGF3cy1jZGsvYXdzLXJvdXRlNTMnO1xuaW1wb3J0IHsgUHJpY2VDbGFzcyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCB7IElDZXJ0aWZpY2F0ZSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0IHsgRE9NQUlOX05BTUVfUkVHSVNUUkFSIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGNyZWF0ZU9yaWdpbkFjY2Vzc0lkZW50aXR5IH0gZnJvbSAnLi4vZmFjYWRlcy9jcmVhdGUtb3JpZ2luLWFjY2Vzcy1pZGVudGl0eSc7XG5pbXBvcnQgeyBjcmVhdGVPcmlnaW5CdWNrZXQgfSBmcm9tICcuLi9mYWNhZGVzL2NyZWF0ZS1vcmlnaW4tYnVja2V0JztcbmltcG9ydCB7IGNyZWF0ZUNsb3VkZnJvbnRXZWJEaXN0cmlidXRpb24gfSBmcm9tICcuLi9mYWNhZGVzL2NyZWF0ZS1jbG91ZGZyb250LXdlYi1kaXN0cmlidXRpb24nO1xuaW1wb3J0IHsgZ2V0Vmlld2VyQ2VydGlmaWNhdGUgfSBmcm9tICcuLi9mYWNhZGVzL2dldC12aWV3ZXItY2VydGlmaWNhdGUnO1xuaW1wb3J0IHsgYWRkQ25hbWVSZWNvcmRzIH0gZnJvbSAnLi4vZmFjYWRlcy9hZGQtY25hbWUtcmVjb3Jkcyc7XG5pbXBvcnQgeyBjcmVhdGVEeW5hbWljQ29uZmlnUGFyYW1ldGVyIH0gZnJvbSAnLi4vZmFjYWRlcy9jcmVhdGUtZHluYW1pYy1jb25maWctcGFyYW1ldGVyJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcblxuZXhwb3J0IGludGVyZmFjZSBJUmVxdWVzdENlcnRpZmljYXRlUHJvcHMge1xuICBkb21haW5OYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdlYkFwcGxpY2F0aW9uUHJvcHMge1xuICBhbGlhc2VzOiBzdHJpbmdbXTtcbiAgY2VydGlmaWNhdGU6IElDZXJ0aWZpY2F0ZSB8IElSZXF1ZXN0Q2VydGlmaWNhdGVQcm9wcztcbiAgaG9zdGVkWm9uZT86IElIb3N0ZWRab25lO1xuICBkb21haW5OYW1lUmVnaXN0cmFyPzogRE9NQUlOX05BTUVfUkVHSVNUUkFSO1xuICBkZWZhdWx0Um9vdE9iamVjdD86IHN0cmluZztcbiAgZXJyb3JSb290T2JqZWN0Pzogc3RyaW5nO1xuICBjbG91ZGZyb250UHJpY2VDbGFzcz86IFByaWNlQ2xhc3M7XG4gIGR5bmFtaWNQYXJhbWV0ZXI/OiB7XG4gICAgYXBwbGljYXRpb25Vc2VyOiBVc2VyO1xuICAgIHBhcmFtZXRlck5hbWU/OiBzdHJpbmc7XG4gICAgaW5pdGlhbFZhbHVlOiBzdHJpbmc7XG4gICAgYWxsb3dlZFBhdHRlcm4/OiBzdHJpbmc7XG4gIH07XG4gIC8qKlxuICAgKiBAZGVmYXVsdCBvcnBoYW5lZCAtIHJlc291cmNlcyB3aWxsIGJlIG9ycGhhbmVkLCBjaG9vc2UgZGVzdHJveSB0byBhdXRvIHJlbW92ZSBvbiBkZXN0cm95XG4gICAqL1xuICByZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcbn1cblxuZXhwb3J0IGNsYXNzIFdlYkFwcGxpY2F0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uZmlnUGFyYW1ldGVyOiBTdHJpbmdQYXJhbWV0ZXIgfCB1bmRlZmluZWQ7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJV2ViQXBwbGljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCB7IGFsaWFzZXMsIGhvc3RlZFpvbmUsIGRvbWFpbk5hbWVSZWdpc3RyYXIgfSA9IHByb3BzO1xuXG4gICAgY29uc3Qgb3JpZ2luQnVja2V0ID0gY3JlYXRlT3JpZ2luQnVja2V0KHRoaXMsIHByb3BzKTtcbiAgICBjb25zdCBpZGVudGl0eSA9IGNyZWF0ZU9yaWdpbkFjY2Vzc0lkZW50aXR5KHRoaXMsIHByb3BzKTtcbiAgICBvcmlnaW5CdWNrZXQuZ3JhbnRSZWFkKGlkZW50aXR5KTtcblxuICAgIGNvbnN0IHZpZXdlckNlcnRpZmljYXRlID0gZ2V0Vmlld2VyQ2VydGlmaWNhdGUodGhpcywgcHJvcHMpO1xuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbiA9IGNyZWF0ZUNsb3VkZnJvbnRXZWJEaXN0cmlidXRpb24odGhpcywgcHJvcHMsIHtcbiAgICAgIHMzQnVja2V0U291cmNlOiBvcmlnaW5CdWNrZXQsXG4gICAgICBvcmlnaW5BY2Nlc3NJZGVudGl0eTogaWRlbnRpdHksXG4gICAgICB2aWV3ZXJDZXJ0aWZpY2F0ZSxcbiAgICB9KTtcblxuICAgIHRoaXMuY29uZmlnUGFyYW1ldGVyID0gY3JlYXRlRHluYW1pY0NvbmZpZ1BhcmFtZXRlcih0aGlzLCBwcm9wcyk7XG5cbiAgICBhZGRDbmFtZVJlY29yZHModGhpcywge1xuICAgICAgZGlzdHJpYnV0aW9uLFxuICAgICAgYWxpYXNlcyxcbiAgICAgIGhvc3RlZFpvbmUsXG4gICAgICBkb21haW5OYW1lUmVnaXN0cmFyLFxuICAgIH0pO1xuICB9XG59XG4iXX0=