aws-cdk
Version:
AWS CDK CLI, the command line tool for CDK apps
47 lines • 5.79 kB
JavaScript
;
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=