Compare commits

...

2 Commits

Author SHA1 Message Date
Sven Slootweg 47bec9e5ac 0.0.2 8 years ago
Sven Slootweg 64cbd78cc7 Make value evaluation opt-in 8 years ago

@ -1,6 +1,6 @@
{
"name": "default-value",
"version": "0.0.1",
"version": "0.0.2",
"description": "Lets you easily define a default value for undefined options, with optional support for Promises",
"main": "index.js",
"scripts": {

@ -10,24 +10,32 @@ function evaluateValue(value) {
}
}
function defaultValue(value, fallbackValue) {
value = evaluateValue(value);
function maybeEvaluateValue(value, evaluate) {
if (evaluate === true) {
return evaluateValue(value);
} else {
return value;
}
}
function defaultValue(value, fallbackValue, options = {}) {
value = maybeEvaluateValue(value, options.evaluate);
if (value != null) {
return value;
} 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 evaluateValue(value);
return maybeEvaluateValue(value, options.evaluate);
}).then((resultValue) => {
if (resultValue != null) {
return resultValue;
} else {
return evaluateValue(fallbackValue);
return maybeEvaluateValue(fallbackValue, options.evaluate);
}
})
}

Loading…
Cancel
Save