Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | const {argumentIsNotABool, argumentIsNotANumber} = require('../errors')
module.exports = option => ({errs = [], argv = []} = {}) => {
const errs2 = []
const argv2 = []
const {types} = option
if (types !== null) {
if (types.length === 0) {
argv2.push(true)
} else {
for (let i = 0; i < types.length; i++) {
const type = types[i]
const arg = argv[i]
switch (type) {
case 'count':
argv2.push(1)
break
case 'string':
argv2.push(arg)
break
case 'number':
const float = parseFloat(arg)
if (!Number.isNaN(float)) argv2.push(float)
else errs2.push(argumentIsNotANumber({option, arg}))
break
case 'bool':
if (arg === 'true') argv2.push(true)
else if (arg === 'false') argv2.push(false)
else errs2.push(argumentIsNotABool({option, arg}))
break
default:
break
}
}
}
}
return {errs: errs.concat(errs2), argv: argv2}
} |