constructor()

in packages/constructs/L2/construct/lib/construct.ts [61:91]


  constructor(scope: Construct, props: MdaaParamAndOutputProps, legacyScope?: Construct) {
    super(MdaaParamAndOutput.determineScope(scope, legacyScope), MdaaParamAndOutput.createId(props));
    const ssmPath = props.resourceId
      ? `${props.resourceType}/${props.resourceId}/${props.name}`
      : `${props.resourceType}/${props.name}`;
    this.paramName = props.naming.ssmPath(ssmPath);

    const skipCreateParamsContextString = this.node.tryGetContext(MdaaParamAndOutput.SKIP_CREATE_PARAMS);
    const skipCreateParamsContext =
      skipCreateParamsContextString != undefined ? /true/i.test(skipCreateParamsContextString) : undefined;
    const createParamsProps =
      props.createParams == undefined || (props.createParams != undefined && props.createParams.valueOf());
    const createParams = skipCreateParamsContext == undefined || !skipCreateParamsContext ? createParamsProps : false;

    if (createParams) {
      console.log(`Creating SSM Param: ${this.paramName}`);
      this.param = new StringParameter(this, `ssm`, {
        parameterName: this.paramName,
        stringValue: props.value,
        simpleName: Token.isUnresolved(this.paramName),
        tier: props.tier,
      });
    }

    if (props.createOutputs == undefined || (props.createOutputs != undefined && props.createOutputs.valueOf())) {
      const exportName = props.resourceId
        ? `${props.resourceType}:${props.resourceId.replace(/\W/g, '').replace(/_/g, '-')}:${props.name}`
        : `${props.resourceType}:${props.name}`;
      new CfnOutput(this, `out`, { value: props.value, exportName: props.naming.exportName(exportName) });
    }
  }