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