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", "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", "description": "Lets you easily define a default value for undefined options, with optional support for Promises",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

@ -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