projen
Version:
CDK for software projects
73 lines • 7.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CdkTasks = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const component_1 = require("../component");
/**
* Adds standard AWS CDK tasks to your project.
*/
class CdkTasks extends component_1.Component {
static [JSII_RTTI_SYMBOL_1] = { fqn: "projen.awscdk.CdkTasks", version: "0.103.12" };
/**
* Synthesizes your app.
*/
synth;
/**
* Synthesizes your app and suppresses stdout.
*/
synthSilent;
/**
* Deploys your app.
*/
deploy;
/**
* Destroys all the stacks.
*/
destroy;
/**
* Diff against production.
*/
diff;
/**
* Watch task.
*/
watch;
constructor(project) {
super(project);
this.synth = project.addTask("synth", {
description: "Synthesizes your cdk app into cdk.out",
execArgs: ["cdk", "synth"],
});
this.synthSilent = project.addTask("synth:silent", {
description: 'Synthesizes your cdk app into cdk.out and suppresses the template in stdout (part of "yarn build")',
execArgs: ["cdk", "synth", "-q"],
});
this.deploy = project.addTask("deploy", {
description: "Deploys your CDK app to the AWS cloud",
execArgs: ["cdk", "deploy"],
receiveArgs: true,
});
this.destroy = project.addTask("destroy", {
description: "Destroys your cdk app in the AWS cloud",
execArgs: ["cdk", "destroy"],
receiveArgs: true,
});
this.diff = project.addTask("diff", {
description: "Diffs the currently deployed app against your code",
execArgs: ["cdk", "diff"],
});
// typescript projects already have a "watch" task, we will repurpose it
const watch = project.tasks.tryFind("watch") ?? project.addTask("watch");
watch.reset();
watch.description =
"Watches changes in your source code and rebuilds and deploys to the current account";
// deploy first because surprisingly watch is not deploying first
// see https://github.com/aws/aws-cdk/issues/17776
watch.execArgs(["cdk", "deploy", "--hotswap"]);
// now we are ready to watch
watch.execArgs(["cdk", "watch"]);
this.watch = watch;
}
}
exports.CdkTasks = CdkTasks;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXRhc2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9jZGstdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLDRDQUF5QztBQUl6Qzs7R0FFRztBQUNILE1BQWEsUUFBUyxTQUFRLHFCQUFTOztJQUNyQzs7T0FFRztJQUNhLEtBQUssQ0FBTztJQUU1Qjs7T0FFRztJQUNhLFdBQVcsQ0FBTztJQUVsQzs7T0FFRztJQUNhLE1BQU0sQ0FBTztJQUU3Qjs7T0FFRztJQUNhLE9BQU8sQ0FBTztJQUU5Qjs7T0FFRztJQUNhLElBQUksQ0FBTztJQUUzQjs7T0FFRztJQUNhLEtBQUssQ0FBTztJQUU1QixZQUFZLE9BQWdCO1FBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7WUFDcEMsV0FBVyxFQUFFLHVDQUF1QztZQUNwRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQzNCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDakQsV0FBVyxFQUNULG9HQUFvRztZQUN0RyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQztTQUNqQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3RDLFdBQVcsRUFBRSx1Q0FBdUM7WUFDcEQsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUMzQixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ3hDLFdBQVcsRUFBRSx3Q0FBd0M7WUFDckQsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUM1QixXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xDLFdBQVcsRUFBRSxvREFBb0Q7WUFDakUsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztTQUMxQixDQUFDLENBQUM7UUFFSCx3RUFBd0U7UUFDeEUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6RSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLENBQUMsV0FBVztZQUNmLHFGQUFxRixDQUFDO1FBRXhGLGlFQUFpRTtRQUNqRSxrREFBa0Q7UUFDbEQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUUvQyw0QkFBNEI7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7O0FBN0VILDRCQThFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgUHJvamVjdCB9IGZyb20gXCIuLi9wcm9qZWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRhc2sgfSBmcm9tIFwiLi4vdGFza1wiO1xuXG4vKipcbiAqIEFkZHMgc3RhbmRhcmQgQVdTIENESyB0YXNrcyB0byB5b3VyIHByb2plY3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtUYXNrcyBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBTeW50aGVzaXplcyB5b3VyIGFwcC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzeW50aDogVGFzaztcblxuICAvKipcbiAgICogU3ludGhlc2l6ZXMgeW91ciBhcHAgYW5kIHN1cHByZXNzZXMgc3Rkb3V0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN5bnRoU2lsZW50OiBUYXNrO1xuXG4gIC8qKlxuICAgKiBEZXBsb3lzIHlvdXIgYXBwLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlcGxveTogVGFzaztcblxuICAvKipcbiAgICogRGVzdHJveXMgYWxsIHRoZSBzdGFja3MuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzdHJveTogVGFzaztcblxuICAvKipcbiAgICogRGlmZiBhZ2FpbnN0IHByb2R1Y3Rpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGlmZjogVGFzaztcblxuICAvKipcbiAgICogV2F0Y2ggdGFzay5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3YXRjaDogVGFzaztcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0KSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICB0aGlzLnN5bnRoID0gcHJvamVjdC5hZGRUYXNrKFwic3ludGhcIiwge1xuICAgICAgZGVzY3JpcHRpb246IFwiU3ludGhlc2l6ZXMgeW91ciBjZGsgYXBwIGludG8gY2RrLm91dFwiLFxuICAgICAgZXhlY0FyZ3M6IFtcImNka1wiLCBcInN5bnRoXCJdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zeW50aFNpbGVudCA9IHByb2plY3QuYWRkVGFzayhcInN5bnRoOnNpbGVudFwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgJ1N5bnRoZXNpemVzIHlvdXIgY2RrIGFwcCBpbnRvIGNkay5vdXQgYW5kIHN1cHByZXNzZXMgdGhlIHRlbXBsYXRlIGluIHN0ZG91dCAocGFydCBvZiBcInlhcm4gYnVpbGRcIiknLFxuICAgICAgZXhlY0FyZ3M6IFtcImNka1wiLCBcInN5bnRoXCIsIFwiLXFcIl0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcGxveSA9IHByb2plY3QuYWRkVGFzayhcImRlcGxveVwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJEZXBsb3lzIHlvdXIgQ0RLIGFwcCB0byB0aGUgQVdTIGNsb3VkXCIsXG4gICAgICBleGVjQXJnczogW1wiY2RrXCIsIFwiZGVwbG95XCJdLFxuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlc3Ryb3kgPSBwcm9qZWN0LmFkZFRhc2soXCJkZXN0cm95XCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRlc3Ryb3lzIHlvdXIgY2RrIGFwcCBpbiB0aGUgQVdTIGNsb3VkXCIsXG4gICAgICBleGVjQXJnczogW1wiY2RrXCIsIFwiZGVzdHJveVwiXSxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaWZmID0gcHJvamVjdC5hZGRUYXNrKFwiZGlmZlwiLCB7XG4gICAgICBkZXNjcmlwdGlvbjogXCJEaWZmcyB0aGUgY3VycmVudGx5IGRlcGxveWVkIGFwcCBhZ2FpbnN0IHlvdXIgY29kZVwiLFxuICAgICAgZXhlY0FyZ3M6IFtcImNka1wiLCBcImRpZmZcIl0sXG4gICAgfSk7XG5cbiAgICAvLyB0eXBlc2NyaXB0IHByb2plY3RzIGFscmVhZHkgaGF2ZSBhIFwid2F0Y2hcIiB0YXNrLCB3ZSB3aWxsIHJlcHVycG9zZSBpdFxuICAgIGNvbnN0IHdhdGNoID0gcHJvamVjdC50YXNrcy50cnlGaW5kKFwid2F0Y2hcIikgPz8gcHJvamVjdC5hZGRUYXNrKFwid2F0Y2hcIik7XG5cbiAgICB3YXRjaC5yZXNldCgpO1xuICAgIHdhdGNoLmRlc2NyaXB0aW9uID1cbiAgICAgIFwiV2F0Y2hlcyBjaGFuZ2VzIGluIHlvdXIgc291cmNlIGNvZGUgYW5kIHJlYnVpbGRzIGFuZCBkZXBsb3lzIHRvIHRoZSBjdXJyZW50IGFjY291bnRcIjtcblxuICAgIC8vIGRlcGxveSBmaXJzdCBiZWNhdXNlIHN1cnByaXNpbmdseSB3YXRjaCBpcyBub3QgZGVwbG95aW5nIGZpcnN0XG4gICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTc3NzZcbiAgICB3YXRjaC5leGVjQXJncyhbXCJjZGtcIiwgXCJkZXBsb3lcIiwgXCItLWhvdHN3YXBcIl0pO1xuXG4gICAgLy8gbm93IHdlIGFyZSByZWFkeSB0byB3YXRjaFxuICAgIHdhdGNoLmV4ZWNBcmdzKFtcImNka1wiLCBcIndhdGNoXCJdKTtcblxuICAgIHRoaXMud2F0Y2ggPSB3YXRjaDtcbiAgfVxufVxuIl19