UNPKG

@cdklabs/cdk-ecs-codedeploy

Version:

CDK Constructs for performing ECS Deployments with CodeDeploy

42 lines 5.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CanaryCodeBundler = void 0; const child_process_1 = require("child_process"); const fs = require("fs"); const path = require("path"); const PACKAGE_JSON_PATTERN = /^package\.json$/; const SOURCE_JS_PATTERN = /^.+\.js$/; class CanaryCodeBundler { constructor(codePath) { this.codePath = codePath; const codePathStats = fs.lstatSync(this.codePath); if (!codePathStats.isDirectory) { throw new Error(`Invalid codePath: ${this.codePath}`); } } copy(pattern, outputDir) { const outputDirStats = fs.lstatSync(outputDir); if (!outputDirStats.isDirectory) { throw new Error(`Invalid outputDir: ${outputDir}`); } fs.readdirSync(this.codePath) .filter(f => f.match(pattern)) .forEach(f => { fs.copyFileSync(`${this.codePath}/${f}`, `${outputDir}/${f}`); }); } tryBundle(outputDir, _options) { fs.mkdirSync(`${outputDir}/nodejs`); this.copy(PACKAGE_JSON_PATTERN, `${outputDir}/nodejs`); (0, child_process_1.execSync)('npm install', { cwd: `${outputDir}/nodejs` }); this.copy(SOURCE_JS_PATTERN, `${outputDir}/nodejs/node_modules`); return true; } toJSON() { return { codePath: path.relative(__dirname, this.codePath), }; } } exports.CanaryCodeBundler = CanaryCodeBundler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1idW5kbGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGktY2FuYXJ5L2NvZGUtYnVuZGxpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaURBQXlDO0FBQ3pDLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFHN0IsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztBQUMvQyxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztBQUVyQyxNQUFhLGlCQUFpQjtJQUM1QixZQUFxQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ25DLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsT0FBZSxFQUFFLFNBQWlCO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDMUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM3QixPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWCxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxHQUFHLFNBQVMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQixFQUFFLFFBQXlCO1FBQ3BELEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxTQUFTLFNBQVMsQ0FBQyxDQUFDO1FBRXZELElBQUEsd0JBQVEsRUFBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxTQUFTLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLFNBQVMsc0JBQXNCLENBQUMsQ0FBQztRQUVqRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2xELENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFyQ0QsOENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBCdW5kbGluZ09wdGlvbnMsIElMb2NhbEJ1bmRsaW5nIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG5jb25zdCBQQUNLQUdFX0pTT05fUEFUVEVSTiA9IC9ecGFja2FnZVxcLmpzb24kLztcbmNvbnN0IFNPVVJDRV9KU19QQVRURVJOID0gL14uK1xcLmpzJC87XG5cbmV4cG9ydCBjbGFzcyBDYW5hcnlDb2RlQnVuZGxlciBpbXBsZW1lbnRzIElMb2NhbEJ1bmRsaW5nIHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgY29kZVBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGNvZGVQYXRoU3RhdHMgPSBmcy5sc3RhdFN5bmModGhpcy5jb2RlUGF0aCk7XG4gICAgaWYgKCFjb2RlUGF0aFN0YXRzLmlzRGlyZWN0b3J5KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29kZVBhdGg6ICR7dGhpcy5jb2RlUGF0aH1gKTtcbiAgICB9XG4gIH1cblxuICBjb3B5KHBhdHRlcm46IFJlZ0V4cCwgb3V0cHV0RGlyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBvdXRwdXREaXJTdGF0cyA9IGZzLmxzdGF0U3luYyhvdXRwdXREaXIpO1xuICAgIGlmICghb3V0cHV0RGlyU3RhdHMuaXNEaXJlY3RvcnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBvdXRwdXREaXI6ICR7b3V0cHV0RGlyfWApO1xuICAgIH1cbiAgICBmcy5yZWFkZGlyU3luYyh0aGlzLmNvZGVQYXRoKVxuICAgICAgLmZpbHRlcihmID0+IGYubWF0Y2gocGF0dGVybikpXG4gICAgICAuZm9yRWFjaChmID0+IHtcbiAgICAgICAgZnMuY29weUZpbGVTeW5jKGAke3RoaXMuY29kZVBhdGh9LyR7Zn1gLCBgJHtvdXRwdXREaXJ9LyR7Zn1gKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdHJ5QnVuZGxlKG91dHB1dERpcjogc3RyaW5nLCBfb3B0aW9uczogQnVuZGxpbmdPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgZnMubWtkaXJTeW5jKGAke291dHB1dERpcn0vbm9kZWpzYCk7XG5cbiAgICB0aGlzLmNvcHkoUEFDS0FHRV9KU09OX1BBVFRFUk4sIGAke291dHB1dERpcn0vbm9kZWpzYCk7XG5cbiAgICBleGVjU3luYygnbnBtIGluc3RhbGwnLCB7IGN3ZDogYCR7b3V0cHV0RGlyfS9ub2RlanNgIH0pO1xuXG4gICAgdGhpcy5jb3B5KFNPVVJDRV9KU19QQVRURVJOLCBgJHtvdXRwdXREaXJ9L25vZGVqcy9ub2RlX21vZHVsZXNgKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdG9KU09OKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGVQYXRoOiBwYXRoLnJlbGF0aXZlKF9fZGlybmFtZSwgdGhpcy5jb2RlUGF0aCksXG4gICAgfTtcbiAgfVxufVxuIl19