Make value evaluation opt-in

master
Sven Slootweg 8 years ago
parent 7a6a7ef816
commit 64cbd78cc7

@ -10,24 +10,32 @@ function evaluateValue(value) {
} }
} }
function defaultValue(value, fallbackValue) { function maybeEvaluateValue(value, evaluate) {
value = evaluateValue(value); if (evaluate === true) {
return evaluateValue(value);
} else {
return value;
}
}
function defaultValue(value, fallbackValue, options = {}) {
value = maybeEvaluateValue(value, options.evaluate);
if (value != null) { if (value != null) {
return value; return value;
} else { } else {
return evaluateValue(fallbackValue); return maybeEvaluateValue(fallbackValue, options.evaluate);
} }
} }
defaultValue.async = function defaultAsyncValue(value, fallbackValue) { defaultValue.async = function defaultAsyncValue(value, fallbackValue, options = {}) {
return promiseTry(() => { return promiseTry(() => {
return evaluateValue(value); return maybeEvaluateValue(value, options.evaluate);
}).then((resultValue) => { }).then((resultValue) => {
if (resultValue != null) { if (resultValue != null) {
return resultValue; return resultValue;
} else { } else {
return evaluateValue(fallbackValue); return maybeEvaluateValue(fallbackValue, options.evaluate);
} }
}) })
} }

Loading…
Cancel
Save