in src/utils/mixin/app-aware-construct.ts [14:41]
protected constructor(...args: any[]) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- mixin
const [scope, id, props, ...rest] = args;
if (!AppIdentity.isAppIdentity(props)) {
throw new Error("Cannot use the GuAppAwareConstruct mixin without an AppIdentity");
}
const app: string = props.app;
const idWithApp = AppIdentity.suffixText({ app }, id as string);
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- mixin
const newArgs = [scope, idWithApp, props, ...rest];
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -- mixin
super(...newArgs);
this.idWithApp = idWithApp;
/*
Add the `App` tag to the construct.
Although not every resource can be tagged, it's still safe to make the call.
If AWS support tags on a new resource one day, our test suite will fail and we can celebrate!
See https://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html
*/
if (Construct.isConstruct(this)) {
AppIdentity.taggedConstruct({ app }, this);
}
}