UNPKG

@aws/cloudfront-hosting-toolkit

Version:

CloudFront Hosting Toolkit offers the convenience of a managed frontend hosting service while retaining full control over the hosting and deployment infrastructure to make it your own.

56 lines (53 loc) 7.31 kB
"use strict"; /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.DeployType = void 0; const constructs_1 = require("constructs"); const helper_1 = require("../bin/cli/utils/helper"); const aws_cdk_lib_1 = require("aws-cdk-lib"); class DeployType extends constructs_1.Construct { /** * Constructs a deployment stack based on the provided configuration. * Handles Git repository and S3 bucket deployment scenarios, setting up * deployment identifiers and CloudFormation outputs accordingly. * In case of incorrect configuration, logs an error and exits the process. * * @param stackConfig - Configuration object containing deployment details. */ constructor(scope, id, hostingConfiguration) { //export function geteDeployIdentifier(stackConfig: IConfiguration) { super(scope, id); if ((0, helper_1.isRepoConfig)(hostingConfiguration)) { const repoUrl = hostingConfiguration.repoUrl; const parsedUrl = (0, helper_1.parseRepositoryUrl)(repoUrl); this.deployIdentifier = parsedUrl.repoOwner + " - " + parsedUrl.repoName + "-" + aws_cdk_lib_1.Stack.of(this).region; new aws_cdk_lib_1.CfnOutput(this, "Source", { value: hostingConfiguration.repoUrl, }); } else if (hostingConfiguration.s3bucket) { this.deployIdentifier = hostingConfiguration.s3bucket; new aws_cdk_lib_1.CfnOutput(this, "Source", { value: hostingConfiguration.s3bucket + "/" + hostingConfiguration.s3path, }); } else { console.log("Wrong configuration found. Exiting."); console.log("Configuration found: " + JSON.stringify(hostingConfiguration)); process.exit(1); } } } exports.DeployType = DeployType; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X3R5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3lfdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7OztBQUVILDJDQUF1QztBQUN2QyxvREFBMkU7QUFDM0UsNkNBQStDO0FBRS9DLE1BQWEsVUFBVyxTQUFRLHNCQUFTO0lBRXZDOzs7Ozs7O09BT0c7SUFDSCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixvQkFBMEM7UUFFMUMscUVBQXFFO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxJQUFBLHFCQUFZLEVBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztZQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFBLDJCQUFrQixFQUFDLE9BQWlCLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLFNBQVMsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBRXZHLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUM1QixLQUFLLEVBQUUsb0JBQW9CLENBQUMsT0FBTzthQUNwQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDO1lBRXRELElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUM1QixLQUFLLEVBQ0gsb0JBQW9CLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQyxNQUFNO2FBQ3BFLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQ1QsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUMvRCxDQUFDO1lBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBekNELGdDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICBcbiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS5cbiAgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgXG4gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgXG4gIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgaXNSZXBvQ29uZmlnLCBwYXJzZVJlcG9zaXRvcnlVcmwgfSBmcm9tIFwiLi4vYmluL2NsaS91dGlscy9oZWxwZXJcIjtcbmltcG9ydCB7IENmbk91dHB1dCwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEhvc3RpbmdDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4uL2Jpbi9jbGkvc2hhcmVkL3R5cGVzXCI7XG5leHBvcnQgY2xhc3MgRGVwbG95VHlwZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBkZXBsb3lJZGVudGlmaWVyOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgZGVwbG95bWVudCBzdGFjayBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICogSGFuZGxlcyBHaXQgcmVwb3NpdG9yeSBhbmQgUzMgYnVja2V0IGRlcGxveW1lbnQgc2NlbmFyaW9zLCBzZXR0aW5nIHVwXG4gICAqIGRlcGxveW1lbnQgaWRlbnRpZmllcnMgYW5kIENsb3VkRm9ybWF0aW9uIG91dHB1dHMgYWNjb3JkaW5nbHkuXG4gICAqIEluIGNhc2Ugb2YgaW5jb3JyZWN0IGNvbmZpZ3VyYXRpb24sIGxvZ3MgYW4gZXJyb3IgYW5kIGV4aXRzIHRoZSBwcm9jZXNzLlxuICAgKlxuICAgKiBAcGFyYW0gc3RhY2tDb25maWcgLSBDb25maWd1cmF0aW9uIG9iamVjdCBjb250YWluaW5nIGRlcGxveW1lbnQgZGV0YWlscy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBob3N0aW5nQ29uZmlndXJhdGlvbjogSG9zdGluZ0NvbmZpZ3VyYXRpb25cbiAgKSB7XG4gICAgLy9leHBvcnQgZnVuY3Rpb24gZ2V0ZURlcGxveUlkZW50aWZpZXIoc3RhY2tDb25maWc6IElDb25maWd1cmF0aW9uKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGlmIChpc1JlcG9Db25maWcoaG9zdGluZ0NvbmZpZ3VyYXRpb24pKSB7XG4gICAgICBjb25zdCByZXBvVXJsID0gaG9zdGluZ0NvbmZpZ3VyYXRpb24ucmVwb1VybDtcbiAgICAgIGNvbnN0IHBhcnNlZFVybCA9IHBhcnNlUmVwb3NpdG9yeVVybChyZXBvVXJsIGFzIHN0cmluZyk7XG4gICAgICB0aGlzLmRlcGxveUlkZW50aWZpZXIgPSBwYXJzZWRVcmwucmVwb093bmVyICsgXCIgLSBcIiArIHBhcnNlZFVybC5yZXBvTmFtZSArIFwiLVwiICsgU3RhY2sub2YodGhpcykucmVnaW9uO1xuXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiU291cmNlXCIsIHtcbiAgICAgICAgdmFsdWU6IGhvc3RpbmdDb25maWd1cmF0aW9uLnJlcG9VcmwsXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKGhvc3RpbmdDb25maWd1cmF0aW9uLnMzYnVja2V0KSB7XG4gICAgICB0aGlzLmRlcGxveUlkZW50aWZpZXIgPSBob3N0aW5nQ29uZmlndXJhdGlvbi5zM2J1Y2tldDtcblxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIlNvdXJjZVwiLCB7XG4gICAgICAgIHZhbHVlOlxuICAgICAgICAgIGhvc3RpbmdDb25maWd1cmF0aW9uLnMzYnVja2V0ICsgXCIvXCIgKyBob3N0aW5nQ29uZmlndXJhdGlvbi5zM3BhdGgsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coXCJXcm9uZyBjb25maWd1cmF0aW9uIGZvdW5kLiBFeGl0aW5nLlwiKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBcIkNvbmZpZ3VyYXRpb24gZm91bmQ6IFwiICsgSlNPTi5zdHJpbmdpZnkoaG9zdGluZ0NvbmZpZ3VyYXRpb24pXG4gICAgICApO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfVxufVxuIl19