All files / src/parser/opts restrictToOnly.js

0% Statements 0/16
0% Branches 0/9
0% Functions 0/1
0% Lines 0/14

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                                                 
const {argumentValueRestrictionsViolated} = require('../../errors')
 
module.exports = ({errs = [], opts: OPTS = []} = {}) => {
  const opts = []
 
  for (let i = 0; i < OPTS.length; i++) {
    const option = OPTS[i]
    const {values, only} = option
 
    if (typeof only === 'undefined' || only === null) {
      opts.push(option)
    } else {
      for (let i = 0; i < values.length; i++) {
        const value = values[i]
        if (only.indexOf(value) > -1) {
          opts.push(option)
        } else {
          errs.push(argumentValueRestrictionsViolated({value, only, option}))
        }
      }
    }
  }
 
  return {errs, opts}
}