All files / deserializers ssv.js

0% Statements 0/7
0% Branches 0/12
0% Functions 0/1
0% Lines 0/7

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                                                                                     
const dsv = require('./dsv')
 
module.exports = {
  name: 'ssv',
  desc: (
    'is a space-separated values deserializer. It is a variant of dsv, but differs in its default values: ' +
    "--delimiter is set to ' ', --quote and --escape to '\"', " +
    'and the --skip-header, --skip-empty-values, and --trim-whitespaces flags are turned on by default. ' +
    'To turn them off, ssv supports the following additional options:\n\n' +
    '--no-dskip-header, --no-skip-header, -S [boolean]\nTurns off --dskip-header, --skip-header, and -S.\n\n' +
    '--no-dskip-empty-values, --no-skip-empty-values, -E [boolean]\nTurns off --dskip-empty-values, --skip-empty-values, and -E.\n\n' +
    '--no-dtrim-whitespaces, --no-trim-whitespaces, -W [boolean]\nTurns off --dtrim-whitespaces, --trim-whitespaces, and -W.\n'
  ),
  func: argv => {
    const {
      noDskipHeader,      noSkipHeader,      S,
      noDskipEmptyValues, noSkipEmptyValues, E,
      noDtrimWhitespaces, noTrimWhitespaces, W
    } = argv
 
    const skipHeader      = !(noDskipHeader      || noSkipHeader      || S || false)
    const skipEmptyValues = !(noDskipEmptyValues || noSkipEmptyValues || E || false)
    const trimWhitespaces = !(noDtrimWhitespaces || noTrimWhitespaces || W || false)
 
    return dsv.dsv({
      delimiter:   ' ',
      quote:       '"',
      escape:      '"',
      header:      '[]'
    })({
      ...argv,
      dskipHeader:      skipHeader,
      skipHeader:       skipHeader,
      S:                skipHeader,
      dskipEmptyValues: skipEmptyValues,
      skipEmptyValues:  skipEmptyValues,
      E:                skipEmptyValues,
      dtrimWhitespaces: trimWhitespaces,
      trimWhitespaces:  trimWhitespaces,
      W:                trimWhitespaces
    })
  }
}