UNPKG

aws-cdk

Version:

AWS CDK CLI, the command line tool for CDK apps

47 lines 5.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.formatStackList = formatStackList; const util_1 = require("../util"); /** * Render the output of `cdk list` for a set of stacks, honoring the output flags. * * - `--long --show-dependencies`: the full stack details, serialized. * - `--show-dependencies`: each stack's id and its dependencies, serialized. * - `--long`: each stack's id, name and environment, serialized. * - otherwise: the stack ids, one per line. * * `--json` selects JSON over YAML for the serialized variants (it has no effect * on the plain id listing, matching the historical CLI behavior). */ function formatStackList(stacks, options = {}) { const json = options.json ?? false; if (options.long && options.showDeps) { // Only a subset of stack information is printed; in particular metadata // (which may be huge) is intentionally excluded. const full = stacks.map(stack => ({ id: stack.id, name: stack.name, environment: stack.environment, dependencies: stack.dependencies, })); return (0, util_1.serializeStructure)(full, json); } if (options.showDeps) { const stackDeps = stacks.map(stack => ({ id: stack.id, dependencies: stack.dependencies, })); return (0, util_1.serializeStructure)(stackDeps, json); } if (options.long) { const long = stacks.map(stack => ({ id: stack.id, name: stack.name, environment: stack.environment, })); return (0, util_1.serializeStructure)(long, json); } // just the stack ids return stacks.map(stack => stack.id).join('\n'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zdGFja3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJsaXN0LXN0YWNrcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWNBLDBDQXFDQztBQWxERCxrQ0FBNkM7QUFFN0M7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLGVBQWUsQ0FDN0IsTUFBc0IsRUFDdEIsVUFBa0UsRUFBRTtJQUVwRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztJQUVuQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JDLHdFQUF3RTtRQUN4RSxpREFBaUQ7UUFDakQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ1osSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7U0FDakMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUEseUJBQWtCLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDWixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7U0FDakMsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUEseUJBQWtCLEVBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDWixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0osT0FBTyxJQUFBLHlCQUFrQixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQscUJBQXFCO0lBQ3JCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tEZXRhaWxzIH0gZnJvbSAnQGF3cy1jZGsvdG9vbGtpdC1saWInO1xuaW1wb3J0IHsgc2VyaWFsaXplU3RydWN0dXJlIH0gZnJvbSAnLi4vdXRpbCc7XG5cbi8qKlxuICogUmVuZGVyIHRoZSBvdXRwdXQgb2YgYGNkayBsaXN0YCBmb3IgYSBzZXQgb2Ygc3RhY2tzLCBob25vcmluZyB0aGUgb3V0cHV0IGZsYWdzLlxuICpcbiAqIC0gYC0tbG9uZyAtLXNob3ctZGVwZW5kZW5jaWVzYDogdGhlIGZ1bGwgc3RhY2sgZGV0YWlscywgc2VyaWFsaXplZC5cbiAqIC0gYC0tc2hvdy1kZXBlbmRlbmNpZXNgOiBlYWNoIHN0YWNrJ3MgaWQgYW5kIGl0cyBkZXBlbmRlbmNpZXMsIHNlcmlhbGl6ZWQuXG4gKiAtIGAtLWxvbmdgOiBlYWNoIHN0YWNrJ3MgaWQsIG5hbWUgYW5kIGVudmlyb25tZW50LCBzZXJpYWxpemVkLlxuICogLSBvdGhlcndpc2U6IHRoZSBzdGFjayBpZHMsIG9uZSBwZXIgbGluZS5cbiAqXG4gKiBgLS1qc29uYCBzZWxlY3RzIEpTT04gb3ZlciBZQU1MIGZvciB0aGUgc2VyaWFsaXplZCB2YXJpYW50cyAoaXQgaGFzIG5vIGVmZmVjdFxuICogb24gdGhlIHBsYWluIGlkIGxpc3RpbmcsIG1hdGNoaW5nIHRoZSBoaXN0b3JpY2FsIENMSSBiZWhhdmlvcikuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdGFja0xpc3QoXG4gIHN0YWNrczogU3RhY2tEZXRhaWxzW10sXG4gIG9wdGlvbnM6IHsgbG9uZz86IGJvb2xlYW47IGpzb24/OiBib29sZWFuOyBzaG93RGVwcz86IGJvb2xlYW4gfSA9IHt9LFxuKTogc3RyaW5nIHtcbiAgY29uc3QganNvbiA9IG9wdGlvbnMuanNvbiA/PyBmYWxzZTtcblxuICBpZiAob3B0aW9ucy5sb25nICYmIG9wdGlvbnMuc2hvd0RlcHMpIHtcbiAgICAvLyBPbmx5IGEgc3Vic2V0IG9mIHN0YWNrIGluZm9ybWF0aW9uIGlzIHByaW50ZWQ7IGluIHBhcnRpY3VsYXIgbWV0YWRhdGFcbiAgICAvLyAod2hpY2ggbWF5IGJlIGh1Z2UpIGlzIGludGVudGlvbmFsbHkgZXhjbHVkZWQuXG4gICAgY29uc3QgZnVsbCA9IHN0YWNrcy5tYXAoc3RhY2sgPT4gKHtcbiAgICAgIGlkOiBzdGFjay5pZCxcbiAgICAgIG5hbWU6IHN0YWNrLm5hbWUsXG4gICAgICBlbnZpcm9ubWVudDogc3RhY2suZW52aXJvbm1lbnQsXG4gICAgICBkZXBlbmRlbmNpZXM6IHN0YWNrLmRlcGVuZGVuY2llcyxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZShmdWxsLCBqc29uKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLnNob3dEZXBzKSB7XG4gICAgY29uc3Qgc3RhY2tEZXBzID0gc3RhY2tzLm1hcChzdGFjayA9PiAoe1xuICAgICAgaWQ6IHN0YWNrLmlkLFxuICAgICAgZGVwZW5kZW5jaWVzOiBzdGFjay5kZXBlbmRlbmNpZXMsXG4gICAgfSkpO1xuICAgIHJldHVybiBzZXJpYWxpemVTdHJ1Y3R1cmUoc3RhY2tEZXBzLCBqc29uKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmxvbmcpIHtcbiAgICBjb25zdCBsb25nID0gc3RhY2tzLm1hcChzdGFjayA9PiAoe1xuICAgICAgaWQ6IHN0YWNrLmlkLFxuICAgICAgbmFtZTogc3RhY2submFtZSxcbiAgICAgIGVudmlyb25tZW50OiBzdGFjay5lbnZpcm9ubWVudCxcbiAgICB9KSk7XG4gICAgcmV0dXJuIHNlcmlhbGl6ZVN0cnVjdHVyZShsb25nLCBqc29uKTtcbiAgfVxuXG4gIC8vIGp1c3QgdGhlIHN0YWNrIGlkc1xuICByZXR1cm4gc3RhY2tzLm1hcChzdGFjayA9PiBzdGFjay5pZCkuam9pbignXFxuJyk7XG59XG4iXX0=