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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 6x 6x 495x 495x 495x 2720x 2720x 504x 2216x 2216x 2335x 2335x 2335x 2335x 2228x 1801x 1802x 1802x 1802x 1288x 1288x 514x 427x 107x 107x 107x 107x 107x 107x 106x 105x 1x 1x 495x 6x | const {invalidTypes, nonMatchingArgumentTypes, invalidOptionsListInCombine} = require('../errors') const combine = (...ARGUMENTS) => { let errs = [] const args = {} for (let i = 0; i < ARGUMENTS.length; i++) { const {errs: ERRS = [], args: ARGS = []} = ARGUMENTS[i] if (ERRS.length > 0) { errs = errs.concat(ERRS) } else { const keys = Object.keys(ARGS) for (let j = 0; j < keys.length; j++) { const arg = keys[j] const options = ARGS[arg] const firstTimeArg = typeof args[arg] === 'undefined' if (firstTimeArg) { if (Array.isArray(options) && options.length > 0) { for (let k = 0; k < options.length; k++) { const option = options[k] const optionHasValidType = Array.isArray(option.types) || typeof option.types === 'undefined' if (optionHasValidType) { if (typeof args[arg] === 'undefined') args[arg] = [] args[arg].push(option) } else { errs.push(invalidTypes({types: option.types, option})) } } } else { errs.push(invalidOptionsListInCombine({options, arg, argument: ARGUMENTS[i]})) } } else { const ref = args[arg][0] const types = ref.types for (let k = 0; k < options.length; k++) { const option = options[k] const optionHasValidType = Array.isArray(option.types) || typeof option.types === 'undefined' if (optionHasValidType) { if ((option.types || []).length === (types || []).length) { args[arg].push(option) } else { errs.push(nonMatchingArgumentTypes({arg, ref, option})) } } else { errs.push(invalidTypes({types: option.types, option})) } } } } } } return {errs, args} } module.exports = { combine } |