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;
}