# All files / tar/lib high-level-opt.js

100% Statements 5/5
100% Branches 4/4
100% Functions 3/3
100% Lines 3/3

    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

    7x

    469x

    469x
     'use strict'

    // turn tar(1) style args like `C` into the more verbose things like `cwd`

    const argmap = new Map([
      ['C', 'cwd'],
      ['f', 'file'],
      ['z', 'gzip'],
      ['P', 'preservePaths'],
      ['U', 'unlink'],
      ['strip-components', 'strip'],
      ['stripComponents', 'strip'],
      ['keep-newer', 'newer'],
      ['keepNewer', 'newer'],
      ['keep-newer-files', 'newer'],
      ['keepNewerFiles', 'newer'],
      ['k', 'keep'],
      ['keep-existing', 'keep'],
      ['keepExisting', 'keep'],
      ['m', 'noMtime'],
      ['no-mtime', 'noMtime'],
      ['p', 'preserveOwner'],
      ['L', 'follow'],
      ['h', 'follow']
    ])

    const parse = module.exports = opt => opt ? Object.keys(opt).map(k => [
      argmap.has(k) ? argmap.get(k) : k, opt[k]
    ]).reduce((set, kv) => (set[kv[0]] = kv[1], set), Object.create(null)) : {}