UNPKG

aws-cdk

Version:

AWS CDK CLI, the command line tool for CDK apps

73 lines 9.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InteractiveHandler = void 0; // @ts-ignore const enquirer_1 = require("enquirer"); const types_1 = require("./types"); class InteractiveHandler { flags; flagOperations; constructor(flags, flagOperations) { this.flags = flags; this.flagOperations = flagOperations; } /** Displays flags that have differences between user and recommended values */ async displayFlagsWithDifferences() { const flagsWithDifferences = this.flags.filter(flag => flag.userValue === undefined || !this.isUserValueEqualToRecommended(flag)); if (flagsWithDifferences.length > 0) { await this.flagOperations.displayFlagTable(flagsWithDifferences); } } /** Checks if user value matches recommended value */ isUserValueEqualToRecommended(flag) { return String(flag.userValue) === String(flag.recommendedValue); } /** Main interactive mode handler that shows menu and processes user selection */ async handleInteractiveMode() { await this.displayFlagsWithDifferences(); const prompt = new enquirer_1.Select({ name: 'option', message: 'Menu', choices: Object.values(types_1.FlagsMenuOptions), }); const answer = await prompt.run(); switch (answer) { case types_1.FlagsMenuOptions.ALL_TO_RECOMMENDED: return { recommended: true, all: true, set: true }; case types_1.FlagsMenuOptions.UNCONFIGURED_TO_RECOMMENDED: return { recommended: true, unconfigured: true, set: true }; case types_1.FlagsMenuOptions.UNCONFIGURED_TO_DEFAULT: return { default: true, unconfigured: true, set: true }; case types_1.FlagsMenuOptions.MODIFY_SPECIFIC_FLAG: return this.handleSpecificFlagSelection(); case types_1.FlagsMenuOptions.EXIT: return null; default: return null; } } /** Handles the specific flag selection flow with flag and value prompts */ async handleSpecificFlagSelection() { const booleanFlags = this.flags.filter(flag => this.flagOperations.isBooleanFlag(flag)); const flagPrompt = new enquirer_1.Select({ name: 'flag', message: 'Select which flag you would like to modify:', limit: 100, choices: booleanFlags.map(flag => flag.name), }); const selectedFlagName = await flagPrompt.run(); const valuePrompt = new enquirer_1.Select({ name: 'value', message: 'Select a value:', choices: ['true', 'false'], }); const value = await valuePrompt.run(); return { FLAGNAME: [selectedFlagName], value, set: true, }; } } exports.InteractiveHandler = InteractiveHandler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3RpdmUtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVyYWN0aXZlLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsYUFBYTtBQUNiLHVDQUFrQztBQUVsQyxtQ0FBc0U7QUFFdEUsTUFBYSxrQkFBa0I7SUFFVjtJQUNBO0lBRm5CLFlBQ21CLEtBQW9CLEVBQ3BCLGNBQThCO1FBRDlCLFVBQUssR0FBTCxLQUFLLENBQWU7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRWpELENBQUM7SUFFRCwrRUFBK0U7SUFDdkUsS0FBSyxDQUFDLDJCQUEyQjtRQUN2QyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3BELElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFN0UsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNILENBQUM7SUFFRCxxREFBcUQ7SUFDN0MsNkJBQTZCLENBQUMsSUFBaUI7UUFDckQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsaUZBQWlGO0lBQ2pGLEtBQUssQ0FBQyxxQkFBcUI7UUFDekIsTUFBTSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUV6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFNLENBQUM7WUFDeEIsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsTUFBTTtZQUNmLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUFnQixDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWxDLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLHdCQUFnQixDQUFDLGtCQUFrQjtnQkFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckQsS0FBSyx3QkFBZ0IsQ0FBQywyQkFBMkI7Z0JBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzlELEtBQUssd0JBQWdCLENBQUMsdUJBQXVCO2dCQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxRCxLQUFLLHdCQUFnQixDQUFDLG9CQUFvQjtnQkFDeEMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUM1QyxLQUFLLHdCQUFnQixDQUFDLElBQUk7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRCwyRUFBMkU7SUFDbkUsS0FBSyxDQUFDLDJCQUEyQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFeEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxpQkFBTSxDQUFDO1lBQzVCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLDZDQUE2QztZQUN0RCxLQUFLLEVBQUUsR0FBRztZQUNWLE9BQU8sRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUM3QyxDQUFDLENBQUM7UUFFSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWhELE1BQU0sV0FBVyxHQUFHLElBQUksaUJBQU0sQ0FBQztZQUM3QixJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztTQUMzQixDQUFDLENBQUM7UUFFSCxNQUFNLEtBQUssR0FBRyxNQUFNLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUV0QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7WUFDNUIsS0FBSztZQUNMLEdBQUcsRUFBRSxJQUFJO1NBQ1YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdFRCxnREE2RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnIH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnZW5xdWlyZXInO1xuaW1wb3J0IHR5cGUgeyBGbGFnT3BlcmF0aW9ucyB9IGZyb20gJy4vb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBGbGFnc01lbnVPcHRpb25zLCB0eXBlIEZsYWdPcGVyYXRpb25zUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGl2ZUhhbmRsZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZsYWdzOiBGZWF0dXJlRmxhZ1tdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmxhZ09wZXJhdGlvbnM6IEZsYWdPcGVyYXRpb25zLFxuICApIHtcbiAgfVxuXG4gIC8qKiBEaXNwbGF5cyBmbGFncyB0aGF0IGhhdmUgZGlmZmVyZW5jZXMgYmV0d2VlbiB1c2VyIGFuZCByZWNvbW1lbmRlZCB2YWx1ZXMgKi9cbiAgcHJpdmF0ZSBhc3luYyBkaXNwbGF5RmxhZ3NXaXRoRGlmZmVyZW5jZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmxhZ3NXaXRoRGlmZmVyZW5jZXMgPSB0aGlzLmZsYWdzLmZpbHRlcihmbGFnID0+XG4gICAgICBmbGFnLnVzZXJWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICF0aGlzLmlzVXNlclZhbHVlRXF1YWxUb1JlY29tbWVuZGVkKGZsYWcpKTtcblxuICAgIGlmIChmbGFnc1dpdGhEaWZmZXJlbmNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCB0aGlzLmZsYWdPcGVyYXRpb25zLmRpc3BsYXlGbGFnVGFibGUoZmxhZ3NXaXRoRGlmZmVyZW5jZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDaGVja3MgaWYgdXNlciB2YWx1ZSBtYXRjaGVzIHJlY29tbWVuZGVkIHZhbHVlICovXG4gIHByaXZhdGUgaXNVc2VyVmFsdWVFcXVhbFRvUmVjb21tZW5kZWQoZmxhZzogRmVhdHVyZUZsYWcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU3RyaW5nKGZsYWcudXNlclZhbHVlKSA9PT0gU3RyaW5nKGZsYWcucmVjb21tZW5kZWRWYWx1ZSk7XG4gIH1cblxuICAvKiogTWFpbiBpbnRlcmFjdGl2ZSBtb2RlIGhhbmRsZXIgdGhhdCBzaG93cyBtZW51IGFuZCBwcm9jZXNzZXMgdXNlciBzZWxlY3Rpb24gKi9cbiAgYXN5bmMgaGFuZGxlSW50ZXJhY3RpdmVNb2RlKCk6IFByb21pc2U8RmxhZ09wZXJhdGlvbnNQYXJhbXMgfCBudWxsPiB7XG4gICAgYXdhaXQgdGhpcy5kaXNwbGF5RmxhZ3NXaXRoRGlmZmVyZW5jZXMoKTtcblxuICAgIGNvbnN0IHByb21wdCA9IG5ldyBTZWxlY3Qoe1xuICAgICAgbmFtZTogJ29wdGlvbicsXG4gICAgICBtZXNzYWdlOiAnTWVudScsXG4gICAgICBjaG9pY2VzOiBPYmplY3QudmFsdWVzKEZsYWdzTWVudU9wdGlvbnMpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYW5zd2VyID0gYXdhaXQgcHJvbXB0LnJ1bigpO1xuXG4gICAgc3dpdGNoIChhbnN3ZXIpIHtcbiAgICAgIGNhc2UgRmxhZ3NNZW51T3B0aW9ucy5BTExfVE9fUkVDT01NRU5ERUQ6XG4gICAgICAgIHJldHVybiB7IHJlY29tbWVuZGVkOiB0cnVlLCBhbGw6IHRydWUsIHNldDogdHJ1ZSB9O1xuICAgICAgY2FzZSBGbGFnc01lbnVPcHRpb25zLlVOQ09ORklHVVJFRF9UT19SRUNPTU1FTkRFRDpcbiAgICAgICAgcmV0dXJuIHsgcmVjb21tZW5kZWQ6IHRydWUsIHVuY29uZmlndXJlZDogdHJ1ZSwgc2V0OiB0cnVlIH07XG4gICAgICBjYXNlIEZsYWdzTWVudU9wdGlvbnMuVU5DT05GSUdVUkVEX1RPX0RFRkFVTFQ6XG4gICAgICAgIHJldHVybiB7IGRlZmF1bHQ6IHRydWUsIHVuY29uZmlndXJlZDogdHJ1ZSwgc2V0OiB0cnVlIH07XG4gICAgICBjYXNlIEZsYWdzTWVudU9wdGlvbnMuTU9ESUZZX1NQRUNJRklDX0ZMQUc6XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVNwZWNpZmljRmxhZ1NlbGVjdGlvbigpO1xuICAgICAgY2FzZSBGbGFnc01lbnVPcHRpb25zLkVYSVQ6XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqIEhhbmRsZXMgdGhlIHNwZWNpZmljIGZsYWcgc2VsZWN0aW9uIGZsb3cgd2l0aCBmbGFnIGFuZCB2YWx1ZSBwcm9tcHRzICovXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlU3BlY2lmaWNGbGFnU2VsZWN0aW9uKCk6IFByb21pc2U8RmxhZ09wZXJhdGlvbnNQYXJhbXM+IHtcbiAgICBjb25zdCBib29sZWFuRmxhZ3MgPSB0aGlzLmZsYWdzLmZpbHRlcihmbGFnID0+IHRoaXMuZmxhZ09wZXJhdGlvbnMuaXNCb29sZWFuRmxhZyhmbGFnKSk7XG5cbiAgICBjb25zdCBmbGFnUHJvbXB0ID0gbmV3IFNlbGVjdCh7XG4gICAgICBuYW1lOiAnZmxhZycsXG4gICAgICBtZXNzYWdlOiAnU2VsZWN0IHdoaWNoIGZsYWcgeW91IHdvdWxkIGxpa2UgdG8gbW9kaWZ5OicsXG4gICAgICBsaW1pdDogMTAwLFxuICAgICAgY2hvaWNlczogYm9vbGVhbkZsYWdzLm1hcChmbGFnID0+IGZsYWcubmFtZSksXG4gICAgfSk7XG5cbiAgICBjb25zdCBzZWxlY3RlZEZsYWdOYW1lID0gYXdhaXQgZmxhZ1Byb21wdC5ydW4oKTtcblxuICAgIGNvbnN0IHZhbHVlUHJvbXB0ID0gbmV3IFNlbGVjdCh7XG4gICAgICBuYW1lOiAndmFsdWUnLFxuICAgICAgbWVzc2FnZTogJ1NlbGVjdCBhIHZhbHVlOicsXG4gICAgICBjaG9pY2VzOiBbJ3RydWUnLCAnZmFsc2UnXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgdmFsdWVQcm9tcHQucnVuKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgRkxBR05BTUU6IFtzZWxlY3RlZEZsYWdOYW1lXSxcbiAgICAgIHZhbHVlLFxuICAgICAgc2V0OiB0cnVlLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==