UNPKG

8.23 kBJavaScriptView Raw
1"use strict";
2var _a;
3Object.defineProperty(exports, "__esModule", { value: true });
4exports.BootstraplessSynthesizer = void 0;
5const jsiiDeprecationWarnings = require("../../.warnings.jsii.js");
6const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7const _shared_1 = require("./_shared");
8const default_synthesizer_1 = require("./default-synthesizer");
9/**
10 * Synthesizer that reuses bootstrap roles from a different region
11 *
12 * A special synthesizer that behaves similarly to `DefaultStackSynthesizer`,
13 * but doesn't require bootstrapping the environment it operates in. Instead,
14 * it will re-use the Roles that were created for a different region (which
15 * is possible because IAM is a global service).
16 *
17 * However, it will not assume asset buckets or repositories have been created,
18 * and therefore does not support assets.
19 *
20 * Used by the CodePipeline construct for the support stacks needed for
21 * cross-region replication S3 buckets. App builders do not need to use this
22 * synthesizer directly.
23 */
24class BootstraplessSynthesizer extends default_synthesizer_1.DefaultStackSynthesizer {
25 constructor(props) {
26 super({
27 deployRoleArn: props.deployRoleArn,
28 cloudFormationExecutionRole: props.cloudFormationExecutionRoleArn,
29 generateBootstrapVersionRule: false,
30 });
31 try {
32 jsiiDeprecationWarnings._aws_cdk_core_BootstraplessSynthesizerProps(props);
33 }
34 catch (error) {
35 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
36 Error.captureStackTrace(error, BootstraplessSynthesizer);
37 }
38 throw error;
39 }
40 }
41 addFileAsset(_asset) {
42 try {
43 jsiiDeprecationWarnings._aws_cdk_core_FileAssetSource(_asset);
44 }
45 catch (error) {
46 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
47 Error.captureStackTrace(error, this.addFileAsset);
48 }
49 throw error;
50 }
51 throw new Error('Cannot add assets to a Stack that uses the BootstraplessSynthesizer');
52 }
53 addDockerImageAsset(_asset) {
54 try {
55 jsiiDeprecationWarnings._aws_cdk_core_DockerImageAssetSource(_asset);
56 }
57 catch (error) {
58 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
59 Error.captureStackTrace(error, this.addDockerImageAsset);
60 }
61 throw error;
62 }
63 throw new Error('Cannot add assets to a Stack that uses the BootstraplessSynthesizer');
64 }
65 synthesize(session) {
66 try {
67 jsiiDeprecationWarnings._aws_cdk_core_ISynthesisSession(session);
68 }
69 catch (error) {
70 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
71 Error.captureStackTrace(error, this.synthesize);
72 }
73 throw error;
74 }
75 _shared_1.assertBound(this.stack);
76 this.synthesizeStackTemplate(this.stack, session);
77 // do _not_ treat the template as an asset,
78 // because this synthesizer doesn't have a bootstrap bucket to put it in
79 this.emitStackArtifact(this.stack, session, {
80 assumeRoleArn: this.deployRoleArn,
81 cloudFormationExecutionRoleArn: this.cloudFormationExecutionRoleArn,
82 });
83 }
84}
85exports.BootstraplessSynthesizer = BootstraplessSynthesizer;
86_a = JSII_RTTI_SYMBOL_1;
87BootstraplessSynthesizer[_a] = { fqn: "@aws-cdk/core.BootstraplessSynthesizer", version: "1.204.0" };
88//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwbGVzcy1zeW50aGVzaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJvb3RzdHJhcGxlc3Mtc3ludGhlc2l6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsdUNBQXdDO0FBQ3hDLCtEQUFnRTtBQXNCaEU7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFhLHdCQUF5QixTQUFRLDZDQUF1QjtJQUNuRSxZQUFZLEtBQW9DO1FBQzlDLEtBQUssQ0FBQztZQUNKLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsOEJBQThCO1lBQ2pFLDRCQUE0QixFQUFFLEtBQUs7U0FDcEMsQ0FBQyxDQUFDOzs7Ozs7K0NBTk0sd0JBQXdCOzs7O0tBT2xDO0lBRU0sWUFBWSxDQUFDLE1BQXVCOzs7Ozs7Ozs7O1FBQ3pDLE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztLQUN4RjtJQUVNLG1CQUFtQixDQUFDLE1BQThCOzs7Ozs7Ozs7O1FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMscUVBQXFFLENBQUMsQ0FBQztLQUN4RjtJQUVNLFVBQVUsQ0FBQyxPQUEwQjs7Ozs7Ozs7OztRQUMxQyxxQkFBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVsRCwyQ0FBMkM7UUFDM0Msd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUMxQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsOEJBQThCLEVBQUUsSUFBSSxDQUFDLDhCQUE4QjtTQUNwRSxDQUFDLENBQUM7S0FDSjs7QUE1QkgsNERBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9ja2VySW1hZ2VBc3NldExvY2F0aW9uLCBEb2NrZXJJbWFnZUFzc2V0U291cmNlLCBGaWxlQXNzZXRMb2NhdGlvbiwgRmlsZUFzc2V0U291cmNlIH0gZnJvbSAnLi4vYXNzZXRzJztcbmltcG9ydCB7IElTeW50aGVzaXNTZXNzaW9uIH0gZnJvbSAnLi4vY29uc3RydWN0LWNvbXBhdCc7XG5pbXBvcnQgeyBhc3NlcnRCb3VuZCB9IGZyb20gJy4vX3NoYXJlZCc7XG5pbXBvcnQgeyBEZWZhdWx0U3RhY2tTeW50aGVzaXplciB9IGZyb20gJy4vZGVmYXVsdC1zeW50aGVzaXplcic7XG5cbi8qKlxuICogQ29uc3RydWN0aW9uIHByb3BlcnRpZXMgb2Yge0BsaW5rIEJvb3RzdHJhcGxlc3NTeW50aGVzaXplcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwbGVzc1N5bnRoZXNpemVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIGRlcGxveSBSb2xlIEFSTiB0byB1c2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZGVwbG95IHJvbGUgKHVzZSBDTEkgY3JlZGVudGlhbHMpXG4gICAqXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lSb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQ0ZOIGV4ZWN1dGlvbiBSb2xlIEFSTiB0byB1c2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gQ2xvdWRGb3JtYXRpb24gcm9sZSAodXNlIENMSSBjcmVkZW50aWFscylcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTeW50aGVzaXplciB0aGF0IHJldXNlcyBib290c3RyYXAgcm9sZXMgZnJvbSBhIGRpZmZlcmVudCByZWdpb25cbiAqXG4gKiBBIHNwZWNpYWwgc3ludGhlc2l6ZXIgdGhhdCBiZWhhdmVzIHNpbWlsYXJseSB0byBgRGVmYXVsdFN0YWNrU3ludGhlc2l6ZXJgLFxuICogYnV0IGRvZXNuJ3QgcmVxdWlyZSBib290c3RyYXBwaW5nIHRoZSBlbnZpcm9ubWVudCBpdCBvcGVyYXRlcyBpbi4gSW5zdGVhZCxcbiAqIGl0IHdpbGwgcmUtdXNlIHRoZSBSb2xlcyB0aGF0IHdlcmUgY3JlYXRlZCBmb3IgYSBkaWZmZXJlbnQgcmVnaW9uICh3aGljaFxuICogaXMgcG9zc2libGUgYmVjYXVzZSBJQU0gaXMgYSBnbG9iYWwgc2VydmljZSkuXG4gKlxuICogSG93ZXZlciwgaXQgd2lsbCBub3QgYXNzdW1lIGFzc2V0IGJ1Y2tldHMgb3IgcmVwb3NpdG9yaWVzIGhhdmUgYmVlbiBjcmVhdGVkLFxuICogYW5kIHRoZXJlZm9yZSBkb2VzIG5vdCBzdXBwb3J0IGFzc2V0cy5cbiAqXG4gKiBVc2VkIGJ5IHRoZSBDb2RlUGlwZWxpbmUgY29uc3RydWN0IGZvciB0aGUgc3VwcG9ydCBzdGFja3MgbmVlZGVkIGZvclxuICogY3Jvc3MtcmVnaW9uIHJlcGxpY2F0aW9uIFMzIGJ1Y2tldHMuIEFwcCBidWlsZGVycyBkbyBub3QgbmVlZCB0byB1c2UgdGhpc1xuICogc3ludGhlc2l6ZXIgZGlyZWN0bHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBsZXNzU3ludGhlc2l6ZXIgZXh0ZW5kcyBEZWZhdWx0U3RhY2tTeW50aGVzaXplciB7XG4gIGNvbnN0cnVjdG9yKHByb3BzOiBCb290c3RyYXBsZXNzU3ludGhlc2l6ZXJQcm9wcykge1xuICAgIHN1cGVyKHtcbiAgICAgIGRlcGxveVJvbGVBcm46IHByb3BzLmRlcGxveVJvbGVBcm4sXG4gICAgICBjbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGU6IHByb3BzLmNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybixcbiAgICAgIGdlbmVyYXRlQm9vdHN0cmFwVmVyc2lvblJ1bGU6IGZhbHNlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZEZpbGVBc3NldChfYXNzZXQ6IEZpbGVBc3NldFNvdXJjZSk6IEZpbGVBc3NldExvY2F0aW9uIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBhZGQgYXNzZXRzIHRvIGEgU3RhY2sgdGhhdCB1c2VzIHRoZSBCb290c3RyYXBsZXNzU3ludGhlc2l6ZXInKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREb2NrZXJJbWFnZUFzc2V0KF9hc3NldDogRG9ja2VySW1hZ2VBc3NldFNvdXJjZSk6IERvY2tlckltYWdlQXNzZXRMb2NhdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgYWRkIGFzc2V0cyB0byBhIFN0YWNrIHRoYXQgdXNlcyB0aGUgQm9vdHN0cmFwbGVzc1N5bnRoZXNpemVyJyk7XG4gIH1cblxuICBwdWJsaWMgc3ludGhlc2l6ZShzZXNzaW9uOiBJU3ludGhlc2lzU2Vzc2lvbik6IHZvaWQge1xuICAgIGFzc2VydEJvdW5kKHRoaXMuc3RhY2spO1xuXG4gICAgdGhpcy5zeW50aGVzaXplU3RhY2tUZW1wbGF0ZSh0aGlzLnN0YWNrLCBzZXNzaW9uKTtcblxuICAgIC8vIGRvIF9ub3RfIHRyZWF0IHRoZSB0ZW1wbGF0ZSBhcyBhbiBhc3NldCxcbiAgICAvLyBiZWNhdXNlIHRoaXMgc3ludGhlc2l6ZXIgZG9lc24ndCBoYXZlIGEgYm9vdHN0cmFwIGJ1Y2tldCB0byBwdXQgaXQgaW5cbiAgICB0aGlzLmVtaXRTdGFja0FydGlmYWN0KHRoaXMuc3RhY2ssIHNlc3Npb24sIHtcbiAgICAgIGFzc3VtZVJvbGVBcm46IHRoaXMuZGVwbG95Um9sZUFybixcbiAgICAgIGNsb3VkRm9ybWF0aW9uRXhlY3V0aW9uUm9sZUFybjogdGhpcy5jbG91ZEZvcm1hdGlvbkV4ZWN1dGlvblJvbGVBcm4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
\No newline at end of file