public tryConvertToDynamicContentTokenSegment()

in libs/designer/src/lib/core/utils/parameters/tokensegment.ts [24:114]


  public tryConvertToDynamicContentTokenSegment(expression: ExpressionFunction): ValueSegment | null {
    const value =
      expression.startPosition === 0
        ? expression.expression
        : expression.expression.substring(expression.startPosition, expression.endPosition);
    if (TokenSegmentConvertor.isOutputToken(expression)) {
      const source = this._getTokenSource(expression);
      const step = TokenSegmentConvertor.getTokenStep(expression.arguments);
      const name = this._getTokenName(expression, source);
      const outputKey = this._getOutputKey(expression);
      const required = !!this._isTokenRequired(expression, source);
      const outputToken = createOutputToken(outputKey, step, source, name, required, value);
      return createTokenValueSegment(outputToken, value);
    }
    if (this._isParameterToken(expression)) {
      const parameterName = (expression.arguments[0] as ExpressionLiteral).value;

      return createTokenValueSegment(createParameterToken(parameterName), value);
    }
    if (TokenSegmentConvertor.isAgentParameterToken(expression)) {
      const agentParameterName = (expression.arguments[0] as ExpressionLiteral).value;
      const agentParameterToken = createAgentParameterToken(agentParameterName);
      return createTokenValueSegment(agentParameterToken, value);
    }
    if (TokenSegmentConvertor.isVariableToken(expression)) {
      const variableName = (expression.arguments[0] as ExpressionLiteral).value;
      const variableToken = createVariableToken(variableName, expression.expression);
      return createTokenValueSegment(variableToken, value);
    }
    if (TokenSegmentConvertor.isItemToken(expression)) {
      const source = this._getTokenSource(expression);
      const name = this._getTokenName(expression, source);
      const outputKey = this._getOutputKey(expression);
      const required = !!this._isTokenRequired(expression, source);

      return createTokenValueSegment(
        {
          arrayDetails: {},
          name,
          required,
          source: OutputSource.Body,
          tokenType: expression.dereferences.length === 0 ? TokenType.ITEM : TokenType.OUTPUTS,
          title: name,
          key: outputKey,
          value,
        },
        value
      );
    }
    if (TokenSegmentConvertor.isItemsToken(expression)) {
      const actionExpression = expression.arguments[0] as ExpressionLiteral;
      const loopSource = actionExpression.value;
      const source = this._getTokenSource(expression);
      const name = this._getTokenName(expression, source);
      const outputKey = this._getOutputKey(expression);
      const required = !!this._isTokenRequired(expression, source);

      return createTokenValueSegment(
        {
          actionName: loopSource,
          arrayDetails: {
            loopSource,
          },
          name,
          required,
          source: OutputSource.Body,
          tokenType: expression.dereferences.length === 0 ? TokenType.ITEM : TokenType.OUTPUTS,
          title: name,
          key: outputKey,
          value,
        },
        value
      );
    }
    if (TokenSegmentConvertor.isIterationIndexesToken(expression)) {
      const functionArguments = expression.arguments;
      const actionExpression = functionArguments[0] as ExpressionLiteral;
      const loopSource = actionExpression.value;
      return createTokenValueSegment(
        {
          arrayDetails: { loopSource },
          tokenType: TokenType.ITERATIONINDEX,
          type: Constants.SWAGGER.TYPE.INTEGER,
          key: 'builtin.$.currentIterationIndexes',
          title: 'Item',
        },
        value
      );
    }
    return null;
  }