"use strict"; const isCallable = require("is-callable"); function createDefaultReturner(defaultValue, isLiteral) { let defaultFunction = function defaultTo(value) { if (value == null) { if (isLiteral === false && isCallable(defaultValue)) { return defaultValue(); } else { return defaultValue; } } }; defaultFunction.callIfNull = true; return defaultFunction; } module.exports = function (defaultValue) { return createDefaultReturner(defaultValue, false); }; module.exports.literal = function (defaultValue) { return createDefaultReturner(defaultValue, true); }