UNPKG

@jefiozie/ngx-aws-deploy

Version:

Deploy an Angular app to Amazon S3 directly from the Angular CLI

57 lines 2.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CloudFront = void 0; const tslib_1 = require("tslib"); const AWS = require("aws-sdk"); const config_1 = require("./config"); class CloudFront { constructor(context, builderConfig) { this._context = context; this._builderConfig = builderConfig; this._region = (0, config_1.getRegion)(this._builderConfig); this._cfDistributionId = (0, config_1.getCfDistributionId)(); this._subFolder = (0, config_1.getSubFolder)(this._builderConfig); AWS.config.update({ region: this._region }); this._cloudFront = new AWS.CloudFront({ apiVersion: 'latest', secretAccessKey: (0, config_1.getSecretAccessKey)(), accessKeyId: (0, config_1.getAccessKeyId)() }); } invalidate() { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (!this._cfDistributionId) { this._context.logger.info('⚠️ Skipping invalidation of CloudFront distribution'); return true; } const cf_path = this._subFolder ? `/${this._subFolder}/*` : '/*'; const reference = `ngx-aws-deploy-${new Date().getTime()}`; const params = { DistributionId: this._cfDistributionId, InvalidationBatch: { CallerReference: reference, Paths: { Quantity: 1, Items: [ cf_path ] } } }; this._context.logger.info(`Triggering invalidation of '${cf_path}' from CloudFront distribution ${this._cfDistributionId}`); yield this._cloudFront .createInvalidation(params) .promise() .then((data) => { this._context.logger.info(`Successfully triggered invalidation of '${cf_path}' from CloudFront distribution ${this._cfDistributionId}: current status is '${data.Invalidation.Status}'`); }) .catch((error) => { this._context.logger.error(`❌ The following error was found during CloudFront invalidation ${error}`); throw error; }); return true; }); } } exports.CloudFront = CloudFront; //# sourceMappingURL=cloudfront.js.map