@scloud/cdk-patterns
Version:
Serverless CDK patterns for common infrastructure needs
62 lines • 5.79 kB
JavaScript
;
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