packages/dsl-framework/src/core/arguments/index.js
/* eslint-disable block-spacing */
/* eslint-disable brace-style */
/* eslint-disable indent */
const getArrayData = require('../lib/get-array-data')
const process = (parameters) => (command, getProcess, defaultValue) => {
defaultValue = typeof defaultValue === 'undefined' ? false : defaultValue
if (Array.isArray(command)) {
const commands = getArrayData(command)
return commands.map(c => process(parameters)(c, getProcess, defaultValue))
}
if (parameters) {
const doWeHaveTheCommand = parameters.command.has(command)
const returnValue = doWeHaveTheCommand ? !!parameters.command.getArguments(command) : defaultValue
if (getProcess === 'boolean') { return doWeHaveTheCommand }
if (returnValue === defaultValue) { return returnValue }
const commandValue = parameters.command.get(command)
return require('./parser')(commandValue, getProcess)}}
module.exports = exports = (parameters) => process(parameters)
// exports.toObject = (command, getProcess, defailtValue = false) => {
// Array.isArray(command) || (() => { command = [command] })()
// }