UNPKG

5.49 kBJavaScriptView Raw
1"use strict";
2var _a;
3Object.defineProperty(exports, "__esModule", { value: true });
4exports.Aspects = void 0;
5const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
6const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
7const ASPECTS_SYMBOL = Symbol.for('cdk-aspects');
8/**
9 * Aspects can be applied to CDK tree scopes and can operate on the tree before
10 * synthesis.
11 */
12class Aspects {
13 // TODO(2.0): private readonly _aspects = new Array<IAspect>();
14 constructor(scope) {
15 this.scope = scope;
16 }
17 /**
18 * Returns the `Aspects` object associated with a construct scope.
19 * @param scope The scope for which these aspects will apply.
20 */
21 static of(scope) {
22 try {
23 jsiiDeprecationWarnings._aws_cdk_core_IConstruct(scope);
24 }
25 catch (error) {
26 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
27 Error.captureStackTrace(error, this.of);
28 }
29 throw error;
30 }
31 let aspects = scope[ASPECTS_SYMBOL];
32 if (!aspects) {
33 aspects = new Aspects(scope);
34 Object.defineProperty(scope, ASPECTS_SYMBOL, {
35 value: aspects,
36 configurable: false,
37 enumerable: false,
38 });
39 }
40 return aspects;
41 }
42 /**
43 * Adds an aspect to apply this scope before synthesis.
44 * @param aspect The aspect to add.
45 */
46 add(aspect) {
47 try {
48 jsiiDeprecationWarnings._aws_cdk_core_IAspect(aspect);
49 }
50 catch (error) {
51 if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
52 Error.captureStackTrace(error, this.add);
53 }
54 throw error;
55 }
56 // TODO(2.0): this._aspects.push(aspect);
57 this.scope.node._actualNode.applyAspect(aspect);
58 }
59 /**
60 * The list of aspects which were directly applied on this scope.
61 */
62 get aspects() {
63 // TODO(2.0): return [ ...this._aspects ];
64 return [...this.scope.node._actualNode._aspects]; // clone
65 }
66}
67exports.Aspects = Aspects;
68_a = JSII_RTTI_SYMBOL_1;
69Aspects[_a] = { fqn: "@aws-cdk/core.Aspects", version: "1.204.0" };
70//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNwZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7QUFZakQ7OztHQUdHO0FBQ0gsTUFBYSxPQUFPO0lBb0JsQiwrREFBK0Q7SUFDL0QsWUFBcUMsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtLQUFLO0lBbkIzRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWlCOzs7Ozs7Ozs7O1FBQ2hDLElBQUksT0FBTyxHQUFJLEtBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdCLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRTtnQkFDM0MsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLFVBQVUsRUFBRSxLQUFLO2FBQ2xCLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFLRDs7O09BR0c7SUFDSSxHQUFHLENBQUMsTUFBZTs7Ozs7Ozs7OztRQUN4Qix5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUNqRDtJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLDJDQUEyQztRQUMzQyxPQUFPLENBQUMsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUTtLQUNwRTs7QUF0Q0gsMEJBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gJy4vY29uc3RydWN0LWNvbXBhdCc7XG5cbmNvbnN0IEFTUEVDVFNfU1lNQk9MID0gU3ltYm9sLmZvcignY2RrLWFzcGVjdHMnKTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEFzcGVjdFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElBc3BlY3Qge1xuICAvKipcbiAgICogQWxsIGFzcGVjdHMgY2FuIHZpc2l0IGFuIElDb25zdHJ1Y3RcbiAgICovXG4gIHZpc2l0KG5vZGU6IElDb25zdHJ1Y3QpOiB2b2lkO1xufVxuXG4vKipcbiAqIEFzcGVjdHMgY2FuIGJlIGFwcGxpZWQgdG8gQ0RLIHRyZWUgc2NvcGVzIGFuZCBjYW4gb3BlcmF0ZSBvbiB0aGUgdHJlZSBiZWZvcmVcbiAqIHN5bnRoZXNpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzcGVjdHMge1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgQXNwZWN0c2Agb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIGNvbnN0cnVjdCBzY29wZS5cbiAgICogQHBhcmFtIHNjb3BlIFRoZSBzY29wZSBmb3Igd2hpY2ggdGhlc2UgYXNwZWN0cyB3aWxsIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihzY29wZTogSUNvbnN0cnVjdCk6IEFzcGVjdHMge1xuICAgIGxldCBhc3BlY3RzID0gKHNjb3BlIGFzIGFueSlbQVNQRUNUU19TWU1CT0xdO1xuICAgIGlmICghYXNwZWN0cykge1xuICAgICAgYXNwZWN0cyA9IG5ldyBBc3BlY3RzKHNjb3BlKTtcblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNjb3BlLCBBU1BFQ1RTX1NZTUJPTCwge1xuICAgICAgICB2YWx1ZTogYXNwZWN0cyxcbiAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFzcGVjdHM7XG4gIH1cblxuICAvLyBUT0RPKDIuMCk6IHByaXZhdGUgcmVhZG9ubHkgX2FzcGVjdHMgPSBuZXcgQXJyYXk8SUFzcGVjdD4oKTtcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHNjb3BlOiBJQ29uc3RydWN0KSB7IH1cblxuICAvKipcbiAgICogQWRkcyBhbiBhc3BlY3QgdG8gYXBwbHkgdGhpcyBzY29wZSBiZWZvcmUgc3ludGhlc2lzLlxuICAgKiBAcGFyYW0gYXNwZWN0IFRoZSBhc3BlY3QgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZChhc3BlY3Q6IElBc3BlY3QpIHtcbiAgICAvLyBUT0RPKDIuMCk6IHRoaXMuX2FzcGVjdHMucHVzaChhc3BlY3QpO1xuICAgIHRoaXMuc2NvcGUubm9kZS5fYWN0dWFsTm9kZS5hcHBseUFzcGVjdChhc3BlY3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGFzcGVjdHMgd2hpY2ggd2VyZSBkaXJlY3RseSBhcHBsaWVkIG9uIHRoaXMgc2NvcGUuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFzcGVjdHMoKTogSUFzcGVjdFtdIHtcbiAgICAvLyBUT0RPKDIuMCk6IHJldHVybiAgWyAuLi50aGlzLl9hc3BlY3RzIF07XG4gICAgcmV0dXJuIFsuLi4odGhpcy5zY29wZS5ub2RlLl9hY3R1YWxOb2RlIGFzIGFueSkuX2FzcGVjdHNdOyAvLyBjbG9uZVxuICB9XG59Il19
\No newline at end of file