diff --git a/methods/loadDefaultValues.js b/methods/loadDefaultValues.js new file mode 100644 index 0000000..af0b30d --- /dev/null +++ b/methods/loadDefaultValues.js @@ -0,0 +1,36 @@ +/* eslint no-param-reassign: 0 */ // --> OFF + +const loadDefaultValues = (inputs, details) => { + if (!inputs) { + inputs = {}; + } + const defaultInputs = details().Inputs; + for (let i = 0; i < defaultInputs.length; i += 1) { + if (typeof inputs[defaultInputs[i].name] === 'string') { + inputs[defaultInputs[i].name] = typeof inputs[defaultInputs[i].name].trim(); + } + + if (inputs[defaultInputs[i].name] === undefined + || inputs[defaultInputs[i].name] === '' + ) { + inputs[defaultInputs[i].name] = defaultInputs[i].defaultValue; + } + + // convert string to bolean esle false + if (defaultInputs[i].type === 'boolean') { + inputs[defaultInputs[i].name] = inputs[defaultInputs[i].name] === 'true'; + } + + // convert string to number else 0 + if (defaultInputs[i].type === 'number') { + inputs[defaultInputs[i].name] = Number(inputs[defaultInputs[i].name]); + // eslint-disable-next-line no-restricted-globals + if (!isNaN(inputs[defaultInputs[i].name])) { + inputs[defaultInputs[i].name] = 0; + } + } + } + return inputs; +}; + +module.exports = loadDefaultValues;