UNPKG

@scloud/cdk-patterns

Version:

Serverless CDK patterns for common infrastructure needs

62 lines 5.79 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.RedirectWww = void 0; const route53patterns = __importStar(require("aws-cdk-lib/aws-route53-patterns")); const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager"); /** * Creates a redirect from a www. subdomain to the non-www domain. * E.g. from www.example.com -> example.com * */ class RedirectWww extends route53patterns.HttpsRedirect { constructor(scope, id, props) { const domain = props.domainName || `${props.zone.zoneName}`; super(scope, `${id}WwwRedirect`, { targetDomain: domain, recordNames: [`www.${domain}`], zone: props.zone, certificate: props.certificate || new aws_certificatemanager_1.DnsValidatedCertificate(scope, `${id}WwwCertificate`, { domainName: `www.${domain}`, hostedZone: props.zone, // this is required for Cloudfront certificates: // https://docs.aws.amazon.com/cdk/api/v1/docs/aws-cloudfront-readme.html region: 'us-east-1', }), }); } } exports.RedirectWww = RedirectWww; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXJlY3RXd3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVkaXJlY3RXd3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsa0ZBQW9FO0FBQ3BFLCtFQUEwRjtBQWExRjs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsZUFBZSxDQUFDLGFBQWE7SUFDNUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1RCxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUU7WUFDL0IsWUFBWSxFQUFFLE1BQU07WUFDcEIsV0FBVyxFQUFFLENBQUMsT0FBTyxNQUFNLEVBQUUsQ0FBQztZQUM5QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxnREFBdUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFO2dCQUMxRixVQUFVLEVBQUUsT0FBTyxNQUFNLEVBQUU7Z0JBQzNCLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDdEIsZ0RBQWdEO2dCQUNoRCx5RUFBeUU7Z0JBQ3pFLE1BQU0sRUFBRSxXQUFXO2FBQ3BCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoQkQsa0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIHJvdXRlNTNwYXR0ZXJucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My1wYXR0ZXJucyc7XG5pbXBvcnQgeyBDZXJ0aWZpY2F0ZSwgRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcblxuLyoqXG4gKiBAcGFyYW0gem9uZSBUaGUgUm91dGU1MyBob3N0ZWQgem9uZSBvZiB0aGUgZG9tYWluXG4gKiBAcGFyYW0gY2VydGlmaWNhdGUgKG9wdGlvbmFsKSBBIGNlcnRpZmljYXRlIHRvIHVzZSBmb3IgdGhlIHd3dyBzdWJkb21haW4gKHlvdSBtYXkgd2FudCB0byB1c2UgdGhlIGRvbWFpbiBhcGV4IGNlcnRpZmljYXRlIHdpdGggYSBzdWJqZWN0IGFsdGVybmF0aXZlIG5hbWUgb2Ygd3d3KVxuICogQHBhcmFtIGRvbWFpbk5hbWUgKG9wdGlvbmFsKSB0aGUgZG9tYWluIG5hbWUgdG8gcmVkaXJlY3QgdG8sIGUuZy4gJ3N1YmRvbWFpbi5leGFtcGxlLmNvbScgd291bGQgcmVkaXJlY3QgJ3d3dy5zdWJkb21haW4uZXhhbXBsZS5jb20nIHRvICdzdWJkb21haW4uZXhhbXBsZS5jb20nIChkZWZhdWx0cyB0byB0aGUgem9uZSBuYW1lKVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZGlyZWN0V3d3UHJvcHMge1xuICB6b25lOiByb3V0ZTUzLklIb3N0ZWRab25lLFxuICBjZXJ0aWZpY2F0ZT86IENlcnRpZmljYXRlLFxuICBkb21haW5OYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSByZWRpcmVjdCBmcm9tIGEgd3d3LiBzdWJkb21haW4gdG8gdGhlIG5vbi13d3cgZG9tYWluLlxuICogRS5nLiBmcm9tIHd3dy5leGFtcGxlLmNvbSAtPiBleGFtcGxlLmNvbVxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIFJlZGlyZWN0V3d3IGV4dGVuZHMgcm91dGU1M3BhdHRlcm5zLkh0dHBzUmVkaXJlY3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVkaXJlY3RXd3dQcm9wcykge1xuICAgIGNvbnN0IGRvbWFpbiA9IHByb3BzLmRvbWFpbk5hbWUgfHwgYCR7cHJvcHMuem9uZS56b25lTmFtZX1gO1xuICAgIHN1cGVyKHNjb3BlLCBgJHtpZH1Xd3dSZWRpcmVjdGAsIHtcbiAgICAgIHRhcmdldERvbWFpbjogZG9tYWluLFxuICAgICAgcmVjb3JkTmFtZXM6IFtgd3d3LiR7ZG9tYWlufWBdLFxuICAgICAgem9uZTogcHJvcHMuem9uZSxcbiAgICAgIGNlcnRpZmljYXRlOiBwcm9wcy5jZXJ0aWZpY2F0ZSB8fCBuZXcgRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUoc2NvcGUsIGAke2lkfVd3d0NlcnRpZmljYXRlYCwge1xuICAgICAgICBkb21haW5OYW1lOiBgd3d3LiR7ZG9tYWlufWAsXG4gICAgICAgIGhvc3RlZFpvbmU6IHByb3BzLnpvbmUsXG4gICAgICAgIC8vIHRoaXMgaXMgcmVxdWlyZWQgZm9yIENsb3VkZnJvbnQgY2VydGlmaWNhdGVzOlxuICAgICAgICAvLyBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2RrL2FwaS92MS9kb2NzL2F3cy1jbG91ZGZyb250LXJlYWRtZS5odG1sXG4gICAgICAgIHJlZ2lvbjogJ3VzLWVhc3QtMScsXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19