@aws-cdk/cloudformation-diff
Version:
Utilities to diff CDK stacks against CloudFormation templates
42 lines • 6.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatEnvironmentSectionHeader = formatEnvironmentSectionHeader;
exports.formatTypedMappings = formatTypedMappings;
exports.formatAmbiguousMappings = formatAmbiguousMappings;
const chalk = require("chalk");
const format_1 = require("./format");
const format_table_1 = require("./format-table");
function formatEnvironmentSectionHeader(stream, env) {
const formatter = new format_1.Formatter(stream, {});
formatter.printSectionHeader(`${env}\n`);
}
function formatTypedMappings(stream, mappings) {
if (mappings.length > 0) {
const header = [['Resource Type', 'Old Construct Path', 'New Construct Path']];
const rows = mappings.map((m) => [m.type, m.sourcePath, m.destinationPath]);
const formatter = new format_1.Formatter(stream, {});
formatter.print('The following resources were moved or renamed:');
formatter.print(chalk.green((0, format_table_1.formatTable)(header.concat(rows), undefined)));
formatter.print(' ');
}
}
function formatAmbiguousMappings(stream, pairs) {
const tables = pairs.map(renderTable);
const formatter = new format_1.Formatter(stream, {});
formatter.print('Detected ambiguities:');
formatter.print(tables.join('\n\n'));
formatter.print(' ');
function renderTable([removed, added]) {
return (0, format_table_1.formatTable)([['', 'Resource'], renderRemoval(removed), renderAddition(added)], undefined);
}
function renderRemoval(locations) {
return [chalk.red('-'), chalk.red(renderLocations(locations))];
}
function renderAddition(locations) {
return [chalk.green('+'), chalk.green(renderLocations(locations))];
}
function renderLocations(locs) {
return locs.join('\n');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtYXBwaW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLHdFQUdDO0FBRUQsa0RBVUM7QUFFRCwwREEwQkM7QUFyREQsK0JBQStCO0FBQy9CLHFDQUFxQztBQUNyQyxpREFBNkM7QUFRN0MsU0FBZ0IsOEJBQThCLENBQUMsTUFBNkIsRUFBRSxHQUFXO0lBQ3ZGLE1BQU0sU0FBUyxHQUFHLElBQUksa0JBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsTUFBNkIsRUFBRSxRQUF3QjtJQUN6RixJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7UUFDL0UsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1QyxTQUFTLENBQUMsS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7UUFDbEUsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUEsMEJBQVcsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQ3JDLE1BQTZCLEVBQzdCLEtBQTZCO0lBRTdCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBUyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU1QyxTQUFTLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDekMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQixTQUFTLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQXVCO1FBQ3pELE9BQU8sSUFBQSwwQkFBVyxFQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCxTQUFTLGFBQWEsQ0FBQyxTQUFtQjtRQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLFNBQW1CO1FBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsU0FBUyxlQUFlLENBQUMsSUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGFsayBmcm9tICdjaGFsayc7XG5pbXBvcnQgeyBGb3JtYXR0ZXIgfSBmcm9tICcuL2Zvcm1hdCc7XG5pbXBvcnQgeyBmb3JtYXRUYWJsZSB9IGZyb20gJy4vZm9ybWF0LXRhYmxlJztcblxuZXhwb3J0IGludGVyZmFjZSBUeXBlZE1hcHBpbmcge1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVzdGluYXRpb25QYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFbnZpcm9ubWVudFNlY3Rpb25IZWFkZXIoc3RyZWFtOiBOb2RlSlMuV3JpdGFibGVTdHJlYW0sIGVudjogc3RyaW5nKSB7XG4gIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBGb3JtYXR0ZXIoc3RyZWFtLCB7fSk7XG4gIGZvcm1hdHRlci5wcmludFNlY3Rpb25IZWFkZXIoYCR7ZW52fVxcbmApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0VHlwZWRNYXBwaW5ncyhzdHJlYW06IE5vZGVKUy5Xcml0YWJsZVN0cmVhbSwgbWFwcGluZ3M6IFR5cGVkTWFwcGluZ1tdKSB7XG4gIGlmIChtYXBwaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgY29uc3QgaGVhZGVyID0gW1snUmVzb3VyY2UgVHlwZScsICdPbGQgQ29uc3RydWN0IFBhdGgnLCAnTmV3IENvbnN0cnVjdCBQYXRoJ11dO1xuICAgIGNvbnN0IHJvd3MgPSBtYXBwaW5ncy5tYXAoKG0pID0+IFttLnR5cGUsIG0uc291cmNlUGF0aCwgbS5kZXN0aW5hdGlvblBhdGhdKTtcbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwge30pO1xuXG4gICAgZm9ybWF0dGVyLnByaW50KCdUaGUgZm9sbG93aW5nIHJlc291cmNlcyB3ZXJlIG1vdmVkIG9yIHJlbmFtZWQ6Jyk7XG4gICAgZm9ybWF0dGVyLnByaW50KGNoYWxrLmdyZWVuKGZvcm1hdFRhYmxlKGhlYWRlci5jb25jYXQocm93cyksIHVuZGVmaW5lZCkpKTtcbiAgICBmb3JtYXR0ZXIucHJpbnQoJyAnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0QW1iaWd1b3VzTWFwcGluZ3MoXG4gIHN0cmVhbTogTm9kZUpTLldyaXRhYmxlU3RyZWFtLFxuICBwYWlyczogW3N0cmluZ1tdLCBzdHJpbmdbXV1bXSxcbikge1xuICBjb25zdCB0YWJsZXMgPSBwYWlycy5tYXAocmVuZGVyVGFibGUpO1xuICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0dGVyKHN0cmVhbSwge30pO1xuXG4gIGZvcm1hdHRlci5wcmludCgnRGV0ZWN0ZWQgYW1iaWd1aXRpZXM6Jyk7XG4gIGZvcm1hdHRlci5wcmludCh0YWJsZXMuam9pbignXFxuXFxuJykpO1xuICBmb3JtYXR0ZXIucHJpbnQoJyAnKTtcblxuICBmdW5jdGlvbiByZW5kZXJUYWJsZShbcmVtb3ZlZCwgYWRkZWRdOiBbc3RyaW5nW10sIHN0cmluZ1tdXSkge1xuICAgIHJldHVybiBmb3JtYXRUYWJsZShbWycnLCAnUmVzb3VyY2UnXSwgcmVuZGVyUmVtb3ZhbChyZW1vdmVkKSwgcmVuZGVyQWRkaXRpb24oYWRkZWQpXSwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlclJlbW92YWwobG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsucmVkKCctJyksIGNoYWxrLnJlZChyZW5kZXJMb2NhdGlvbnMobG9jYXRpb25zKSldO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVuZGVyQWRkaXRpb24obG9jYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBbY2hhbGsuZ3JlZW4oJysnKSwgY2hhbGsuZ3JlZW4ocmVuZGVyTG9jYXRpb25zKGxvY2F0aW9ucykpXTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbmRlckxvY2F0aW9ucyhsb2NzOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBsb2NzLmpvaW4oJ1xcbicpO1xuICB9XG59XG4iXX0=