You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cfn2ts): some property times have behavioral-interface names (#18275)
Some CloudFormation library generated types, such as
`@aws-cdk/aws-networkfirewall.CfnRuleGroup.IPSetProperty` are meant to
be jsii structs, but have names that cause them to be handled as jsii
behavioral interfaces (`I` followed by a capital letter).
Mangling the names (i.e: changing `IPSet` to `IpSet`) would also work,
but is tedious to maintain and has been proven to lead to inadeverten
releasing of stable code that does not have the intended "shape" in
other languages.
Instead - this uses the jsii type system hints feature introduced a few
months ago in the compiler to force those interfaces to be considered as
structs regardless of their name.
Fixesaws/jsii#2929 (and probably more)
BREAKING CHANGE: some "complex" property types within the generated
CloudFormation interfaces (i.e: properties of `Cfn*` constructs) with
names starting with a capital letter `I` followed by another capital
letter are no longer incorrectly treated as behavioral interfaces, and
might hence have different usage patterns in non-TypeScript languages.
Such interfaces were previously very difficult to use in non-TypeScript
languages, and required convoluted workarounds, which can now be removed.
----
*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
0 commit comments