Handle actual arrays

Fixes #1191
This commit is contained in:
Sipke Schoorstra 2021-07-03 22:18:01 +02:00
parent c00585241e
commit 3fbb1a2a8b
5 changed files with 9 additions and 9 deletions

View file

@ -18,7 +18,7 @@ export class ForkPlugin implements ElsaPlugin {
const props = activityModel.properties || [];
const syntax = SyntaxNames.Json;
const branches = props.find(x => x.name == 'Branches') || {expressions: {'Json': '[]'}, syntax: syntax};
const expression = branches.expressions[syntax] || '[]';
context.outcomes = !!expression['$values'] ? expression['$values'] : parseJson(expression) || [];
const expression = branches.expressions[syntax] || [];
context.outcomes = !!expression['$values'] ? expression['$values'] : Array.isArray(expression) ? expression : parseJson(expression) || [];
}
}

View file

@ -17,8 +17,8 @@ export class RunJavascriptPlugin implements ElsaPlugin {
const props = activityModel.properties || [];
const outcomes = props.find(x => x.name == 'PossibleOutcomes') || { expressions: {'Json': ''}, syntax: SyntaxNames.Json };
const expression = outcomes.expressions[SyntaxNames.Json] || '[]';
context.outcomes = parseJson(expression) || ['Done'];
const expression = outcomes.expressions[SyntaxNames.Json] || [];
context.outcomes = Array.isArray(expression) ? expression : parseJson(expression) || ['Done'];
if(context.outcomes.length == 0)
context.outcomes = ['Done'];

View file

@ -18,8 +18,8 @@ export class SendHttpRequestPlugin implements ElsaPlugin {
const props = activityModel.properties || [];
const syntax = SyntaxNames.Json;
const supportedStatusCodes = props.find(x => x.name == 'SupportedStatusCodes') || {expressions: {'Json': '[]'}, syntax: syntax};
const expression = supportedStatusCodes.expressions[syntax] || '[]';
let outcomes = !!expression['$values'] ? expression['$values'] : parseJson(expression) || [];
const expression = supportedStatusCodes.expressions[syntax] || [];
let outcomes = !!expression['$values'] ? expression['$values'] : Array.isArray(expression) ? expression : parseJson(expression) || [];
outcomes = [...outcomes, 'Done', 'Unsupported Status Code']

View file

@ -21,7 +21,7 @@ export class StatePlugin implements ElsaPlugin {
const transitionsSyntax = SyntaxNames.Json;
const transitions = props.find(x => x.name == 'Transitions') || {expressions: {'Json': '[]'}, syntax: transitionsSyntax};
const transitionsExpression = transitions.expressions[transitionsSyntax] || '[]';
context.outcomes = !!transitionsExpression['$values'] ? transitionsExpression['$values'] : parseJson(transitionsExpression) || [];
const transitionsExpression = transitions.expressions[transitionsSyntax] || [];
context.outcomes = !!transitionsExpression['$values'] ? transitionsExpression['$values'] : Array.isArray(transitionsExpression) ? transitionsExpression : parseJson(transitionsExpression) || [];
}
}

View file

@ -19,6 +19,6 @@ export class UserTaskPlugin implements ElsaPlugin {
const syntax = SyntaxNames.Json;
const branches = props.find(x => x.name == 'Actions') || {expressions: {'Json': '[]'}, syntax: syntax};
const expression = branches.expressions[syntax] || '[]';
context.outcomes = !!expression['$values'] ? expression['$values'] : parseJson(expression) || [];
context.outcomes = !!expression['$values'] ? expression['$values'] : Array.isArray(expression) ? expression : parseJson(expression) || [];
}
}