1 | ;
|
2 | var _a;
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | exports.FeatureFlags = void 0;
|
5 | const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
6 | const cxapi = require("@aws-cdk/cx-api");
|
7 | const constructs_1 = require("constructs");
|
8 | /**
|
9 | * Features that are implemented behind a flag in order to preserve backwards
|
10 | * compatibility for existing apps. The list of flags are available in the
|
11 | * `@aws-cdk/cx-api` module.
|
12 | *
|
13 | * The state of the flag for this application is stored as a CDK context variable.
|
14 | */
|
15 | class FeatureFlags {
|
16 | constructor(construct) {
|
17 | this.construct = construct;
|
18 | }
|
19 | /**
|
20 | * Inspect feature flags on the construct node's context.
|
21 | */
|
22 | static of(scope) {
|
23 | return new FeatureFlags(scope);
|
24 | }
|
25 | /**
|
26 | * Check whether a feature flag is enabled. If configured, the flag is present in
|
27 | * the construct node context. Falls back to the defaults defined in the `cx-api`
|
28 | * module.
|
29 | */
|
30 | isEnabled(featureFlag) {
|
31 | const context = constructs_1.Node.of(this.construct).tryGetContext(featureFlag);
|
32 | if (cxapi.FUTURE_FLAGS_EXPIRED.includes(featureFlag)) {
|
33 | if (context !== undefined) {
|
34 | throw new Error(`Unsupported feature flag '${featureFlag}'. This flag existed on CDKv1 but has been removed in CDKv2.`
|
35 | + ' CDK will now behave as the same as when the flag is enabled.');
|
36 | }
|
37 | return true;
|
38 | }
|
39 | return context ?? cxapi.futureFlagDefault(featureFlag);
|
40 | }
|
41 | }
|
42 | exports.FeatureFlags = FeatureFlags;
|
43 | _a = JSII_RTTI_SYMBOL_1;
|
44 | FeatureFlags[_a] = { fqn: "@aws-cdk/core.FeatureFlags", version: "1.204.0" };
|
45 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZlYXR1cmUtZmxhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5Q0FBeUM7QUFDekMsMkNBQThDO0FBRTlDOzs7Ozs7R0FNRztBQUNILE1BQWEsWUFBWTtJQVF2QixZQUFxQyxTQUFxQjtRQUFyQixjQUFTLEdBQVQsU0FBUyxDQUFZO0tBQUk7SUFQOUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQWlCO1FBQ2hDLE9BQU8sSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDaEM7SUFJRDs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLFdBQW1CO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLGlCQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkUsSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3BELElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsV0FBVyw4REFBOEQ7c0JBQ2xILCtEQUErRCxDQUFDLENBQUM7YUFDdEU7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3hEOztBQXpCSCxvQ0EwQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHsgSUNvbnN0cnVjdCwgTm9kZSB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEZlYXR1cmVzIHRoYXQgYXJlIGltcGxlbWVudGVkIGJlaGluZCBhIGZsYWcgaW4gb3JkZXIgdG8gcHJlc2VydmUgYmFja3dhcmRzXG4gKiBjb21wYXRpYmlsaXR5IGZvciBleGlzdGluZyBhcHBzLiBUaGUgbGlzdCBvZiBmbGFncyBhcmUgYXZhaWxhYmxlIGluIHRoZVxuICogYEBhd3MtY2RrL2N4LWFwaWAgbW9kdWxlLlxuICpcbiAqIFRoZSBzdGF0ZSBvZiB0aGUgZmxhZyBmb3IgdGhpcyBhcHBsaWNhdGlvbiBpcyBzdG9yZWQgYXMgYSBDREsgY29udGV4dCB2YXJpYWJsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZlYXR1cmVGbGFncyB7XG4gIC8qKlxuICAgKiBJbnNwZWN0IGZlYXR1cmUgZmxhZ3Mgb24gdGhlIGNvbnN0cnVjdCBub2RlJ3MgY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2Yoc2NvcGU6IElDb25zdHJ1Y3QpIHtcbiAgICByZXR1cm4gbmV3IEZlYXR1cmVGbGFncyhzY29wZSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY29uc3RydWN0OiBJQ29uc3RydWN0KSB7fVxuXG4gIC8qKlxuICAgKiBDaGVjayB3aGV0aGVyIGEgZmVhdHVyZSBmbGFnIGlzIGVuYWJsZWQuIElmIGNvbmZpZ3VyZWQsIHRoZSBmbGFnIGlzIHByZXNlbnQgaW5cbiAgICogdGhlIGNvbnN0cnVjdCBub2RlIGNvbnRleHQuIEZhbGxzIGJhY2sgdG8gdGhlIGRlZmF1bHRzIGRlZmluZWQgaW4gdGhlIGBjeC1hcGlgXG4gICAqIG1vZHVsZS5cbiAgICovXG4gIHB1YmxpYyBpc0VuYWJsZWQoZmVhdHVyZUZsYWc6IHN0cmluZyk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbnRleHQgPSBOb2RlLm9mKHRoaXMuY29uc3RydWN0KS50cnlHZXRDb250ZXh0KGZlYXR1cmVGbGFnKTtcbiAgICBpZiAoY3hhcGkuRlVUVVJFX0ZMQUdTX0VYUElSRUQuaW5jbHVkZXMoZmVhdHVyZUZsYWcpKSB7XG4gICAgICBpZiAoY29udGV4dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZmVhdHVyZSBmbGFnICcke2ZlYXR1cmVGbGFnfScuIFRoaXMgZmxhZyBleGlzdGVkIG9uIENES3YxIGJ1dCBoYXMgYmVlbiByZW1vdmVkIGluIENES3YyLmBcbiAgICAgICAgICArICcgQ0RLIHdpbGwgbm93IGJlaGF2ZSBhcyB0aGUgc2FtZSBhcyB3aGVuIHRoZSBmbGFnIGlzIGVuYWJsZWQuJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQgPz8gY3hhcGkuZnV0dXJlRmxhZ0RlZmF1bHQoZmVhdHVyZUZsYWcpO1xuICB9XG59XG4iXX0= |
\ | No newline at end of file |