UNPKG

@scloud/cdk-patterns

Version:

Serverless CDK patterns for common infrastructure needs

70 lines 5.87 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.RedirectDomain = 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 one domain (including www. subdomain) to another. * * For example you could redirect from example.com to example.org: * - example.com -> example.org * - www.example.com -> example.org * * To redirect www.example.com to example.com, use RedirectWww because * these redirects are implemented in a different zone (example.org) * * @param zone The Route53 hosted zone of the source domain to redirect from * @param targetDomain The target domain to redirect to */ class RedirectDomain extends route53patterns.HttpsRedirect { constructor(scope, id, zone, targetDomain) { super(scope, `${id}Redirect`, { targetDomain, recordNames: [zone.zoneName, `www.${zone.zoneName}`], zone, certificate: new aws_certificatemanager_1.DnsValidatedCertificate(scope, `${id}Certificate`, { domainName: zone.zoneName, subjectAlternativeNames: [`www.${zone.zoneName}`], hostedZone: 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.RedirectDomain = RedirectDomain; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXJlY3REb21haW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVkaXJlY3REb21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsa0ZBQW9FO0FBQ3BFLCtFQUE2RTtBQUU3RTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxlQUFlLENBQUMsYUFBYTtJQUMvRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQXlCLEVBQUUsWUFBb0I7UUFDdkYsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQzVCLFlBQVk7WUFDWixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BELElBQUk7WUFDSixXQUFXLEVBQUUsSUFBSSxnREFBdUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtnQkFDbEUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN6Qix1QkFBdUIsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNqRCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZ0RBQWdEO2dCQUNoRCx5RUFBeUU7Z0JBQ3pFLE1BQU0sRUFBRSxXQUFXO2FBQ3BCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoQkQsd0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIHJvdXRlNTNwYXR0ZXJucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My1wYXR0ZXJucyc7XG5pbXBvcnQgeyBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuXG4vKipcbiAqIENyZWF0ZXMgYSByZWRpcmVjdCBmcm9tIG9uZSBkb21haW4gKGluY2x1ZGluZyB3d3cuIHN1YmRvbWFpbikgdG8gYW5vdGhlci5cbiAqXG4gKiBGb3IgZXhhbXBsZSB5b3UgY291bGQgcmVkaXJlY3QgZnJvbSBleGFtcGxlLmNvbSB0byBleGFtcGxlLm9yZzpcbiAqIC0gZXhhbXBsZS5jb20gLT4gZXhhbXBsZS5vcmdcbiAqIC0gd3d3LmV4YW1wbGUuY29tIC0+IGV4YW1wbGUub3JnXG4gKlxuICogVG8gcmVkaXJlY3Qgd3d3LmV4YW1wbGUuY29tIHRvIGV4YW1wbGUuY29tLCB1c2UgUmVkaXJlY3RXd3cgYmVjYXVzZVxuICogdGhlc2UgcmVkaXJlY3RzIGFyZSBpbXBsZW1lbnRlZCBpbiBhIGRpZmZlcmVudCB6b25lIChleGFtcGxlLm9yZylcbiAqXG4gKiBAcGFyYW0gem9uZSBUaGUgUm91dGU1MyBob3N0ZWQgem9uZSBvZiB0aGUgc291cmNlIGRvbWFpbiB0byByZWRpcmVjdCBmcm9tXG4gKiBAcGFyYW0gdGFyZ2V0RG9tYWluIFRoZSB0YXJnZXQgZG9tYWluIHRvIHJlZGlyZWN0IHRvXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWRpcmVjdERvbWFpbiBleHRlbmRzIHJvdXRlNTNwYXR0ZXJucy5IdHRwc1JlZGlyZWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgem9uZTogcm91dGU1My5JSG9zdGVkWm9uZSwgdGFyZ2V0RG9tYWluOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgYCR7aWR9UmVkaXJlY3RgLCB7XG4gICAgICB0YXJnZXREb21haW4sXG4gICAgICByZWNvcmROYW1lczogW3pvbmUuem9uZU5hbWUsIGB3d3cuJHt6b25lLnpvbmVOYW1lfWBdLFxuICAgICAgem9uZSxcbiAgICAgIGNlcnRpZmljYXRlOiBuZXcgRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUoc2NvcGUsIGAke2lkfUNlcnRpZmljYXRlYCwge1xuICAgICAgICBkb21haW5OYW1lOiB6b25lLnpvbmVOYW1lLFxuICAgICAgICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lczogW2B3d3cuJHt6b25lLnpvbmVOYW1lfWBdLFxuICAgICAgICBob3N0ZWRab25lOiB6b25lLFxuICAgICAgICAvLyB0aGlzIGlzIHJlcXVpcmVkIGZvciBDbG91ZGZyb250IGNlcnRpZmljYXRlczpcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjEvZG9jcy9hd3MtY2xvdWRmcm9udC1yZWFkbWUuaHRtbFxuICAgICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==