@player-ui/async-node-plugin 0.11.3--canary.660.23372 → 0.11.3--canary.649.23416
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1190,6 +1190,48 @@ var AsyncNodePlugin = function() {
|
|
|
1190
1190
|
}
|
|
1191
1191
|
return typeof expr === "object" && expr !== null && !Array.isArray(expr) && "value" in expr;
|
|
1192
1192
|
};
|
|
1193
|
+
var isPromiselike = function isPromiselike(value) {
|
|
1194
|
+
var // Check for standard Promise constructor name
|
|
1195
|
+
_value_constructor;
|
|
1196
|
+
return value != null && typeof value === "object" && typeof value.then === "function" && // Additional safeguards against false positives
|
|
1197
|
+
(_instanceof(value, Promise) || ((_value_constructor = value.constructor) === null || _value_constructor === void 0 ? void 0 : _value_constructor.name) === "Promise" || // Verify it has other Promise-like methods to reduce false positives
|
|
1198
|
+
typeof value.catch === "function" && typeof value.finally === "function");
|
|
1199
|
+
};
|
|
1200
|
+
var makePromiseAwareBinaryOp = function makePromiseAwareBinaryOp(operation) {
|
|
1201
|
+
return function(a, b) {
|
|
1202
|
+
if (isPromiselike(a) || isPromiselike(b)) {
|
|
1203
|
+
return Promise.all([
|
|
1204
|
+
Promise.resolve(a),
|
|
1205
|
+
Promise.resolve(b)
|
|
1206
|
+
]).then(function(param) {
|
|
1207
|
+
var _param = _sliced_to_array(param, 2), resolvedA = _param[0], resolvedB = _param[1];
|
|
1208
|
+
return operation(resolvedA, resolvedB);
|
|
1209
|
+
});
|
|
1210
|
+
}
|
|
1211
|
+
return operation(a, b);
|
|
1212
|
+
};
|
|
1213
|
+
};
|
|
1214
|
+
var makePromiseAwareUnaryOp = function makePromiseAwareUnaryOp(operation) {
|
|
1215
|
+
return function(a) {
|
|
1216
|
+
if (isPromiselike(a)) {
|
|
1217
|
+
return a.then(function(resolved) {
|
|
1218
|
+
return operation(resolved);
|
|
1219
|
+
});
|
|
1220
|
+
}
|
|
1221
|
+
return operation(a);
|
|
1222
|
+
};
|
|
1223
|
+
};
|
|
1224
|
+
var handleConditionalBranching = function handleConditionalBranching(testValue, getTrueBranch, getFalseBranch, resolveNode) {
|
|
1225
|
+
if (isPromiselike(testValue)) {
|
|
1226
|
+
return testValue.then(function(resolved) {
|
|
1227
|
+
var branch2 = resolved ? getTrueBranch() : getFalseBranch();
|
|
1228
|
+
var branchResult = resolveNode(branch2);
|
|
1229
|
+
return isPromiselike(branchResult) ? branchResult : Promise.resolve(branchResult);
|
|
1230
|
+
});
|
|
1231
|
+
}
|
|
1232
|
+
var branch = testValue ? getTrueBranch() : getFalseBranch();
|
|
1233
|
+
return resolveNode(branch);
|
|
1234
|
+
};
|
|
1193
1235
|
var parse2 = function parse2(schema) {
|
|
1194
1236
|
var _loop = function() {
|
|
1195
1237
|
var next = parseQueue.shift();
|
|
@@ -3579,6 +3621,9 @@ var AsyncNodePlugin = function() {
|
|
|
3579
3621
|
},
|
|
3580
3622
|
setDataVal: function() {
|
|
3581
3623
|
return setDataVal;
|
|
3624
|
+
},
|
|
3625
|
+
waitFor: function() {
|
|
3626
|
+
return waitFor;
|
|
3582
3627
|
}
|
|
3583
3628
|
});
|
|
3584
3629
|
var setDataVal = function(_context, binding, value) {
|
|
@@ -3596,8 +3641,19 @@ var AsyncNodePlugin = function() {
|
|
|
3596
3641
|
return _context.model.delete(binding);
|
|
3597
3642
|
};
|
|
3598
3643
|
var conditional = function(ctx, condition, ifTrue, ifFalse) {
|
|
3599
|
-
var
|
|
3600
|
-
if (
|
|
3644
|
+
var testResult = ctx.evaluate(condition);
|
|
3645
|
+
if (_instanceof(testResult, Promise)) {
|
|
3646
|
+
return testResult.then(function(resolvedTest) {
|
|
3647
|
+
if (resolvedTest) {
|
|
3648
|
+
return ctx.evaluate(ifTrue);
|
|
3649
|
+
}
|
|
3650
|
+
if (ifFalse) {
|
|
3651
|
+
return ctx.evaluate(ifFalse);
|
|
3652
|
+
}
|
|
3653
|
+
return null;
|
|
3654
|
+
});
|
|
3655
|
+
}
|
|
3656
|
+
if (testResult) {
|
|
3601
3657
|
return ctx.evaluate(ifTrue);
|
|
3602
3658
|
}
|
|
3603
3659
|
if (ifFalse) {
|
|
@@ -3606,12 +3662,33 @@ var AsyncNodePlugin = function() {
|
|
|
3606
3662
|
return null;
|
|
3607
3663
|
};
|
|
3608
3664
|
conditional.resolveParams = false;
|
|
3665
|
+
var waitFor = function() {
|
|
3666
|
+
var _ref = _async_to_generator(function(ctx, promise) {
|
|
3667
|
+
return _ts_generator(this, function(_state) {
|
|
3668
|
+
switch(_state.label){
|
|
3669
|
+
case 0:
|
|
3670
|
+
return [
|
|
3671
|
+
4,
|
|
3672
|
+
promise
|
|
3673
|
+
];
|
|
3674
|
+
case 1:
|
|
3675
|
+
return [
|
|
3676
|
+
2,
|
|
3677
|
+
_state.sent()
|
|
3678
|
+
];
|
|
3679
|
+
}
|
|
3680
|
+
});
|
|
3681
|
+
});
|
|
3682
|
+
return function waitFor(ctx, promise) {
|
|
3683
|
+
return _ref.apply(this, arguments);
|
|
3684
|
+
};
|
|
3685
|
+
}();
|
|
3609
3686
|
var andandOperator = function(ctx, a, b) {
|
|
3610
|
-
return
|
|
3687
|
+
return LogicalOperators.and(ctx, a, b);
|
|
3611
3688
|
};
|
|
3612
3689
|
andandOperator.resolveParams = false;
|
|
3613
3690
|
var ororOperator = function(ctx, a, b) {
|
|
3614
|
-
return
|
|
3691
|
+
return LogicalOperators.or(ctx, a, b);
|
|
3615
3692
|
};
|
|
3616
3693
|
ororOperator.resolveParams = false;
|
|
3617
3694
|
var DEFAULT_BINARY_OPERATORS = {
|
|
@@ -3631,34 +3708,35 @@ var AsyncNodePlugin = function() {
|
|
|
3631
3708
|
"%": function(a, b) {
|
|
3632
3709
|
return a % b;
|
|
3633
3710
|
},
|
|
3711
|
+
// Promise-aware comparison operators
|
|
3634
3712
|
// eslint-disable-next-line
|
|
3635
|
-
"==": function(a, b) {
|
|
3713
|
+
"==": makePromiseAwareBinaryOp(function(a, b) {
|
|
3636
3714
|
return a == b;
|
|
3637
|
-
},
|
|
3715
|
+
}),
|
|
3638
3716
|
// eslint-disable-next-line
|
|
3639
|
-
"!=": function(a, b) {
|
|
3717
|
+
"!=": makePromiseAwareBinaryOp(function(a, b) {
|
|
3640
3718
|
return a != b;
|
|
3641
|
-
},
|
|
3642
|
-
">": function(a, b) {
|
|
3719
|
+
}),
|
|
3720
|
+
">": makePromiseAwareBinaryOp(function(a, b) {
|
|
3643
3721
|
return a > b;
|
|
3644
|
-
},
|
|
3645
|
-
">=": function(a, b) {
|
|
3722
|
+
}),
|
|
3723
|
+
">=": makePromiseAwareBinaryOp(function(a, b) {
|
|
3646
3724
|
return a >= b;
|
|
3647
|
-
},
|
|
3648
|
-
"<": function(a, b) {
|
|
3725
|
+
}),
|
|
3726
|
+
"<": makePromiseAwareBinaryOp(function(a, b) {
|
|
3649
3727
|
return a < b;
|
|
3650
|
-
},
|
|
3651
|
-
"<=": function(a, b) {
|
|
3728
|
+
}),
|
|
3729
|
+
"<=": makePromiseAwareBinaryOp(function(a, b) {
|
|
3652
3730
|
return a <= b;
|
|
3653
|
-
},
|
|
3654
|
-
"
|
|
3655
|
-
"||": ororOperator,
|
|
3656
|
-
"!==": function(a, b) {
|
|
3731
|
+
}),
|
|
3732
|
+
"!==": makePromiseAwareBinaryOp(function(a, b) {
|
|
3657
3733
|
return a !== b;
|
|
3658
|
-
},
|
|
3659
|
-
"===": function(a, b) {
|
|
3734
|
+
}),
|
|
3735
|
+
"===": makePromiseAwareBinaryOp(function(a, b) {
|
|
3660
3736
|
return a === b;
|
|
3661
|
-
},
|
|
3737
|
+
}),
|
|
3738
|
+
"&&": andandOperator,
|
|
3739
|
+
"||": ororOperator,
|
|
3662
3740
|
// eslint-disable-next-line
|
|
3663
3741
|
"|": function(a, b) {
|
|
3664
3742
|
return a | b;
|
|
@@ -3689,8 +3767,70 @@ var AsyncNodePlugin = function() {
|
|
|
3689
3767
|
"+": function(a) {
|
|
3690
3768
|
return Number(a);
|
|
3691
3769
|
},
|
|
3692
|
-
"!": function(a) {
|
|
3770
|
+
"!": makePromiseAwareUnaryOp(function(a) {
|
|
3693
3771
|
return !a;
|
|
3772
|
+
})
|
|
3773
|
+
};
|
|
3774
|
+
var PromiseCollectionHandler = {
|
|
3775
|
+
/**
|
|
3776
|
+
* Handle array with potential Promise elements
|
|
3777
|
+
*/ handleArray: function handleArray(items) {
|
|
3778
|
+
var hasPromises = items.some(function(item) {
|
|
3779
|
+
return isPromiselike(item);
|
|
3780
|
+
});
|
|
3781
|
+
return hasPromises ? Promise.all(items) : items;
|
|
3782
|
+
},
|
|
3783
|
+
/**
|
|
3784
|
+
* Handle object with potential Promise keys/values
|
|
3785
|
+
*/ handleObject: function handleObject(attributes, resolveNode) {
|
|
3786
|
+
var resolvedAttributes = {};
|
|
3787
|
+
var promises = [];
|
|
3788
|
+
var hasPromises = false;
|
|
3789
|
+
attributes.forEach(function(attr) {
|
|
3790
|
+
var key = resolveNode(attr.key);
|
|
3791
|
+
var value = resolveNode(attr.value);
|
|
3792
|
+
if (isPromiselike(key) || isPromiselike(value)) {
|
|
3793
|
+
hasPromises = true;
|
|
3794
|
+
var keyPromise = Promise.resolve(key);
|
|
3795
|
+
var valuePromise = Promise.resolve(value);
|
|
3796
|
+
promises.push(Promise.all([
|
|
3797
|
+
keyPromise,
|
|
3798
|
+
valuePromise
|
|
3799
|
+
]).then(function(param) {
|
|
3800
|
+
var _param = _sliced_to_array(param, 2), resolvedKey = _param[0], resolvedValue = _param[1];
|
|
3801
|
+
resolvedAttributes[resolvedKey] = resolvedValue;
|
|
3802
|
+
}));
|
|
3803
|
+
} else {
|
|
3804
|
+
resolvedAttributes[key] = value;
|
|
3805
|
+
}
|
|
3806
|
+
});
|
|
3807
|
+
return hasPromises ? Promise.all(promises).then(function() {
|
|
3808
|
+
return resolvedAttributes;
|
|
3809
|
+
}) : resolvedAttributes;
|
|
3810
|
+
}
|
|
3811
|
+
};
|
|
3812
|
+
var LogicalOperators = {
|
|
3813
|
+
and: function(ctx, leftNode, rightNode) {
|
|
3814
|
+
var leftResult = ctx.evaluate(leftNode);
|
|
3815
|
+
if (isPromiselike(leftResult)) {
|
|
3816
|
+
return leftResult.then(function(awaitedLeft) {
|
|
3817
|
+
if (!awaitedLeft) return awaitedLeft;
|
|
3818
|
+
var rightResult = ctx.evaluate(rightNode);
|
|
3819
|
+
return isPromiselike(rightResult) ? rightResult : Promise.resolve(rightResult);
|
|
3820
|
+
});
|
|
3821
|
+
}
|
|
3822
|
+
return leftResult && ctx.evaluate(rightNode);
|
|
3823
|
+
},
|
|
3824
|
+
or: function(ctx, leftNode, rightNode) {
|
|
3825
|
+
var leftResult = ctx.evaluate(leftNode);
|
|
3826
|
+
if (isPromiselike(leftResult)) {
|
|
3827
|
+
return leftResult.then(function(awaitedLeft) {
|
|
3828
|
+
if (awaitedLeft) return awaitedLeft;
|
|
3829
|
+
var rightResult = ctx.evaluate(rightNode);
|
|
3830
|
+
return isPromiselike(rightResult) ? rightResult : Promise.resolve(rightResult);
|
|
3831
|
+
});
|
|
3832
|
+
}
|
|
3833
|
+
return leftResult || ctx.evaluate(rightNode);
|
|
3694
3834
|
}
|
|
3695
3835
|
};
|
|
3696
3836
|
var ExpressionEvaluator = /*#__PURE__*/ function() {
|
|
@@ -3711,7 +3851,12 @@ var AsyncNodePlugin = function() {
|
|
|
3711
3851
|
this.operators = {
|
|
3712
3852
|
binary: new Map(Object.entries(DEFAULT_BINARY_OPERATORS)),
|
|
3713
3853
|
unary: new Map(Object.entries(DEFAULT_UNARY_OPERATORS)),
|
|
3714
|
-
expressions: new Map(Object.entries(evaluator_functions_exports))
|
|
3854
|
+
expressions: new Map(_to_consumable_array(Object.entries(evaluator_functions_exports)).concat([
|
|
3855
|
+
[
|
|
3856
|
+
"await",
|
|
3857
|
+
waitFor
|
|
3858
|
+
]
|
|
3859
|
+
]))
|
|
3715
3860
|
};
|
|
3716
3861
|
this.defaultHookOptions = _object_spread_props(_object_spread({}, defaultOptions), {
|
|
3717
3862
|
evaluate: function(expr) {
|
|
@@ -3721,7 +3866,9 @@ var AsyncNodePlugin = function() {
|
|
|
3721
3866
|
return _this._execAST(node, _this.defaultHookOptions);
|
|
3722
3867
|
}
|
|
3723
3868
|
});
|
|
3724
|
-
this.hooks.resolve.tap("ExpressionEvaluator",
|
|
3869
|
+
this.hooks.resolve.tap("ExpressionEvaluator", function(result, node, options) {
|
|
3870
|
+
return _this._resolveNode(result, node, options);
|
|
3871
|
+
});
|
|
3725
3872
|
this.evaluate = this.evaluate.bind(this);
|
|
3726
3873
|
}
|
|
3727
3874
|
_create_class(ExpressionEvaluator, [
|
|
@@ -3759,6 +3906,14 @@ var AsyncNodePlugin = function() {
|
|
|
3759
3906
|
return this._execString(String(expression), resolvedOpts);
|
|
3760
3907
|
}
|
|
3761
3908
|
},
|
|
3909
|
+
{
|
|
3910
|
+
key: "evaluateAsync",
|
|
3911
|
+
value: function evaluateAsync(expr, options) {
|
|
3912
|
+
return this.evaluate(expr, _object_spread_props(_object_spread({}, options), {
|
|
3913
|
+
async: true
|
|
3914
|
+
}));
|
|
3915
|
+
}
|
|
3916
|
+
},
|
|
3762
3917
|
{
|
|
3763
3918
|
key: "addExpressionFunction",
|
|
3764
3919
|
value: function addExpressionFunction(name, handler) {
|
|
@@ -3804,8 +3959,10 @@ var AsyncNodePlugin = function() {
|
|
|
3804
3959
|
var matches = exp.match(/^@\[(.*)\]@$/);
|
|
3805
3960
|
var matchedExp = exp;
|
|
3806
3961
|
if (matches) {
|
|
3807
|
-
var
|
|
3808
|
-
|
|
3962
|
+
var _Array_from = _sliced_to_array(Array.from(matches), 2), matched = _Array_from[1];
|
|
3963
|
+
if (matched) {
|
|
3964
|
+
matchedExp = matched;
|
|
3965
|
+
}
|
|
3809
3966
|
}
|
|
3810
3967
|
var storedAST;
|
|
3811
3968
|
try {
|
|
@@ -3855,9 +4012,31 @@ var AsyncNodePlugin = function() {
|
|
|
3855
4012
|
if (operator.resolveParams === false) {
|
|
3856
4013
|
return operator(expressionContext, node.left, node.right);
|
|
3857
4014
|
}
|
|
3858
|
-
|
|
4015
|
+
var left2 = resolveNode(node.left);
|
|
4016
|
+
var right2 = resolveNode(node.right);
|
|
4017
|
+
if (isPromiselike(left2) || isPromiselike(right2)) {
|
|
4018
|
+
return Promise.all([
|
|
4019
|
+
left2,
|
|
4020
|
+
right2
|
|
4021
|
+
]).then(function(param) {
|
|
4022
|
+
var _param = _sliced_to_array(param, 2), leftVal = _param[0], rightVal = _param[1];
|
|
4023
|
+
return operator(expressionContext, leftVal, rightVal);
|
|
4024
|
+
});
|
|
4025
|
+
}
|
|
4026
|
+
return operator(expressionContext, left2, right2);
|
|
4027
|
+
}
|
|
4028
|
+
var left = resolveNode(node.left);
|
|
4029
|
+
var right = resolveNode(node.right);
|
|
4030
|
+
if (isPromiselike(left) || isPromiselike(right)) {
|
|
4031
|
+
return Promise.all([
|
|
4032
|
+
left,
|
|
4033
|
+
right
|
|
4034
|
+
]).then(function(param) {
|
|
4035
|
+
var _param = _sliced_to_array(param, 2), leftVal = _param[0], rightVal = _param[1];
|
|
4036
|
+
return operator(leftVal, rightVal);
|
|
4037
|
+
});
|
|
3859
4038
|
}
|
|
3860
|
-
return operator(
|
|
4039
|
+
return operator(left, right);
|
|
3861
4040
|
}
|
|
3862
4041
|
return;
|
|
3863
4042
|
}
|
|
@@ -3865,21 +4044,29 @@ var AsyncNodePlugin = function() {
|
|
|
3865
4044
|
var operator1 = this.operators.unary.get(node.operator);
|
|
3866
4045
|
if (operator1) {
|
|
3867
4046
|
if ("resolveParams" in operator1) {
|
|
3868
|
-
|
|
4047
|
+
if (operator1.resolveParams === false) {
|
|
4048
|
+
return operator1(expressionContext, node.argument);
|
|
4049
|
+
}
|
|
4050
|
+
var arg2 = resolveNode(node.argument);
|
|
4051
|
+
if (isPromiselike(arg2)) {
|
|
4052
|
+
return arg2.then(function(argVal) {
|
|
4053
|
+
return operator1(expressionContext, argVal);
|
|
4054
|
+
});
|
|
4055
|
+
}
|
|
4056
|
+
return operator1(expressionContext, arg2);
|
|
3869
4057
|
}
|
|
3870
|
-
|
|
4058
|
+
var arg = resolveNode(node.argument);
|
|
4059
|
+
if (isPromiselike(arg)) {
|
|
4060
|
+
return arg.then(function(argVal) {
|
|
4061
|
+
return operator1(argVal);
|
|
4062
|
+
});
|
|
4063
|
+
}
|
|
4064
|
+
return operator1(arg);
|
|
3871
4065
|
}
|
|
3872
4066
|
return;
|
|
3873
4067
|
}
|
|
3874
4068
|
if (node.type === "Object") {
|
|
3875
|
-
|
|
3876
|
-
var resolvedAttributes = {};
|
|
3877
|
-
attributes.forEach(function(attr) {
|
|
3878
|
-
var key = resolveNode(attr.key);
|
|
3879
|
-
var value = resolveNode(attr.value);
|
|
3880
|
-
resolvedAttributes[key] = value;
|
|
3881
|
-
});
|
|
3882
|
-
return resolvedAttributes;
|
|
4069
|
+
return PromiseCollectionHandler.handleObject(node.attributes, resolveNode);
|
|
3883
4070
|
}
|
|
3884
4071
|
if (node.type === "CallExpression") {
|
|
3885
4072
|
var expressionName = node.callTarget.name;
|
|
@@ -3895,6 +4082,14 @@ var AsyncNodePlugin = function() {
|
|
|
3895
4082
|
var args = node.args.map(function(n) {
|
|
3896
4083
|
return resolveNode(n);
|
|
3897
4084
|
});
|
|
4085
|
+
var hasPromises = args.some(isPromiselike);
|
|
4086
|
+
if (hasPromises) {
|
|
4087
|
+
return Promise.all(args).then(function(resolvedArgs) {
|
|
4088
|
+
return operator2.apply(void 0, [
|
|
4089
|
+
expressionContext
|
|
4090
|
+
].concat(_to_consumable_array(resolvedArgs)));
|
|
4091
|
+
});
|
|
4092
|
+
}
|
|
3898
4093
|
return operator2.apply(void 0, [
|
|
3899
4094
|
expressionContext
|
|
3900
4095
|
].concat(_to_consumable_array(args)));
|
|
@@ -3909,11 +4104,31 @@ var AsyncNodePlugin = function() {
|
|
|
3909
4104
|
if (node.type === "MemberExpression") {
|
|
3910
4105
|
var obj = resolveNode(node.object);
|
|
3911
4106
|
var prop = resolveNode(node.property);
|
|
4107
|
+
if (isPromiselike(obj) || isPromiselike(prop)) {
|
|
4108
|
+
return Promise.all([
|
|
4109
|
+
obj,
|
|
4110
|
+
prop
|
|
4111
|
+
]).then(function(param) {
|
|
4112
|
+
var _param = _sliced_to_array(param, 2), objVal = _param[0], propVal = _param[1];
|
|
4113
|
+
return objVal[propVal];
|
|
4114
|
+
});
|
|
4115
|
+
}
|
|
3912
4116
|
return obj[prop];
|
|
3913
4117
|
}
|
|
3914
4118
|
if (node.type === "Assignment") {
|
|
3915
4119
|
if (node.left.type === "ModelRef") {
|
|
3916
4120
|
var value = resolveNode(node.right);
|
|
4121
|
+
if (isPromiselike(value)) {
|
|
4122
|
+
return value.then(function(resolvedValue) {
|
|
4123
|
+
model.set([
|
|
4124
|
+
[
|
|
4125
|
+
node.left.ref,
|
|
4126
|
+
resolvedValue
|
|
4127
|
+
]
|
|
4128
|
+
]);
|
|
4129
|
+
return resolvedValue;
|
|
4130
|
+
});
|
|
4131
|
+
}
|
|
3917
4132
|
model.set([
|
|
3918
4133
|
[
|
|
3919
4134
|
node.left.ref,
|
|
@@ -3924,19 +4139,30 @@ var AsyncNodePlugin = function() {
|
|
|
3924
4139
|
}
|
|
3925
4140
|
if (node.left.type === "Identifier") {
|
|
3926
4141
|
var value1 = resolveNode(node.right);
|
|
4142
|
+
if (isPromiselike(value1)) {
|
|
4143
|
+
return value1.then(function(resolvedValue) {
|
|
4144
|
+
_this.vars[node.left.name] = resolvedValue;
|
|
4145
|
+
return resolvedValue;
|
|
4146
|
+
});
|
|
4147
|
+
}
|
|
3927
4148
|
this.vars[node.left.name] = value1;
|
|
3928
4149
|
return value1;
|
|
3929
4150
|
}
|
|
3930
4151
|
return;
|
|
3931
4152
|
}
|
|
3932
4153
|
if (node.type === "ConditionalExpression") {
|
|
3933
|
-
var
|
|
3934
|
-
return
|
|
4154
|
+
var testResult = resolveNode(node.test);
|
|
4155
|
+
return handleConditionalBranching(testResult, function() {
|
|
4156
|
+
return node.consequent;
|
|
4157
|
+
}, function() {
|
|
4158
|
+
return node.alternate;
|
|
4159
|
+
}, resolveNode);
|
|
3935
4160
|
}
|
|
3936
4161
|
if (node.type === "ArrayExpression") {
|
|
3937
|
-
|
|
4162
|
+
var results = node.elements.map(function(ele) {
|
|
3938
4163
|
return resolveNode(ele);
|
|
3939
4164
|
});
|
|
4165
|
+
return PromiseCollectionHandler.handleArray(results);
|
|
3940
4166
|
}
|
|
3941
4167
|
if (node.type === "Modification") {
|
|
3942
4168
|
var operation = this.operators.binary.get(node.operator);
|
|
@@ -3946,12 +4172,47 @@ var AsyncNodePlugin = function() {
|
|
|
3946
4172
|
if (operation.resolveParams === false) {
|
|
3947
4173
|
newValue = operation(expressionContext, node.left, node.right);
|
|
3948
4174
|
} else {
|
|
3949
|
-
|
|
4175
|
+
var left1 = resolveNode(node.left);
|
|
4176
|
+
var right1 = resolveNode(node.right);
|
|
4177
|
+
if (isPromiselike(left1) || isPromiselike(right1)) {
|
|
4178
|
+
newValue = Promise.all([
|
|
4179
|
+
left1,
|
|
4180
|
+
right1
|
|
4181
|
+
]).then(function(param) {
|
|
4182
|
+
var _param = _sliced_to_array(param, 2), leftVal = _param[0], rightVal = _param[1];
|
|
4183
|
+
return operation(expressionContext, leftVal, rightVal);
|
|
4184
|
+
});
|
|
4185
|
+
} else {
|
|
4186
|
+
newValue = operation(expressionContext, left1, right1);
|
|
4187
|
+
}
|
|
3950
4188
|
}
|
|
3951
4189
|
} else {
|
|
3952
|
-
|
|
4190
|
+
var left3 = resolveNode(node.left);
|
|
4191
|
+
var right3 = resolveNode(node.right);
|
|
4192
|
+
if (isPromiselike(left3) || isPromiselike(right3)) {
|
|
4193
|
+
newValue = Promise.all([
|
|
4194
|
+
left3,
|
|
4195
|
+
right3
|
|
4196
|
+
]).then(function(param) {
|
|
4197
|
+
var _param = _sliced_to_array(param, 2), leftVal = _param[0], rightVal = _param[1];
|
|
4198
|
+
return operation(leftVal, rightVal);
|
|
4199
|
+
});
|
|
4200
|
+
} else {
|
|
4201
|
+
newValue = operation(left3, right3);
|
|
4202
|
+
}
|
|
3953
4203
|
}
|
|
3954
4204
|
if (node.left.type === "ModelRef") {
|
|
4205
|
+
if (isPromiselike(newValue)) {
|
|
4206
|
+
return newValue.then(function(resolvedValue) {
|
|
4207
|
+
model.set([
|
|
4208
|
+
[
|
|
4209
|
+
node.left.ref,
|
|
4210
|
+
resolvedValue
|
|
4211
|
+
]
|
|
4212
|
+
]);
|
|
4213
|
+
return resolvedValue;
|
|
4214
|
+
});
|
|
4215
|
+
}
|
|
3955
4216
|
model.set([
|
|
3956
4217
|
[
|
|
3957
4218
|
node.left.ref,
|
|
@@ -3959,6 +4220,12 @@ var AsyncNodePlugin = function() {
|
|
|
3959
4220
|
]
|
|
3960
4221
|
]);
|
|
3961
4222
|
} else if (node.left.type === "Identifier") {
|
|
4223
|
+
if (isPromiselike(newValue)) {
|
|
4224
|
+
return newValue.then(function(resolvedValue) {
|
|
4225
|
+
_this.vars[node.left.name] = resolvedValue;
|
|
4226
|
+
return resolvedValue;
|
|
4227
|
+
});
|
|
4228
|
+
}
|
|
3962
4229
|
this.vars[node.left.name] = newValue;
|
|
3963
4230
|
}
|
|
3964
4231
|
return newValue;
|
|
@@ -7530,15 +7797,56 @@ var AsyncNodePlugin = function() {
|
|
|
7530
7797
|
validationController.reset();
|
|
7531
7798
|
}
|
|
7532
7799
|
});
|
|
7533
|
-
flow.hooks.afterTransition.tap("player", function(
|
|
7534
|
-
var
|
|
7535
|
-
|
|
7536
|
-
|
|
7537
|
-
|
|
7538
|
-
|
|
7539
|
-
|
|
7540
|
-
|
|
7541
|
-
|
|
7800
|
+
flow.hooks.afterTransition.tap("player", function() {
|
|
7801
|
+
var _ref = _async_to_generator(function(flowInstance) {
|
|
7802
|
+
var _flowInstance_currentState, value, exp, result, e;
|
|
7803
|
+
return _ts_generator(this, function(_state) {
|
|
7804
|
+
switch(_state.label){
|
|
7805
|
+
case 0:
|
|
7806
|
+
value = (_flowInstance_currentState = flowInstance.currentState) === null || _flowInstance_currentState === void 0 ? void 0 : _flowInstance_currentState.value;
|
|
7807
|
+
if (!(value && value.state_type === "ACTION")) return [
|
|
7808
|
+
3,
|
|
7809
|
+
4
|
|
7810
|
+
];
|
|
7811
|
+
exp = value.exp;
|
|
7812
|
+
_state.label = 1;
|
|
7813
|
+
case 1:
|
|
7814
|
+
_state.trys.push([
|
|
7815
|
+
1,
|
|
7816
|
+
3,
|
|
7817
|
+
,
|
|
7818
|
+
4
|
|
7819
|
+
]);
|
|
7820
|
+
return [
|
|
7821
|
+
4,
|
|
7822
|
+
expressionEvaluator.evaluateAsync(exp)
|
|
7823
|
+
];
|
|
7824
|
+
case 2:
|
|
7825
|
+
result = _state.sent();
|
|
7826
|
+
flowController === null || flowController === void 0 ? void 0 : flowController.transition(String(result));
|
|
7827
|
+
return [
|
|
7828
|
+
3,
|
|
7829
|
+
4
|
|
7830
|
+
];
|
|
7831
|
+
case 3:
|
|
7832
|
+
e = _state.sent();
|
|
7833
|
+
flowResultDeferred.reject(e);
|
|
7834
|
+
return [
|
|
7835
|
+
3,
|
|
7836
|
+
4
|
|
7837
|
+
];
|
|
7838
|
+
case 4:
|
|
7839
|
+
expressionEvaluator.reset();
|
|
7840
|
+
return [
|
|
7841
|
+
2
|
|
7842
|
+
];
|
|
7843
|
+
}
|
|
7844
|
+
});
|
|
7845
|
+
});
|
|
7846
|
+
return function(flowInstance) {
|
|
7847
|
+
return _ref.apply(this, arguments);
|
|
7848
|
+
};
|
|
7849
|
+
}());
|
|
7542
7850
|
});
|
|
7543
7851
|
this.hooks.dataController.call(dataController);
|
|
7544
7852
|
validationController.setOptions({
|