1'use strict' 2 3// turn tar(1) style args like `C` into the more verbose things like `cwd` 4 5const argmap = new Map([ 6 ['C', 'cwd'], 7 ['f', 'file'], 8 ['z', 'gzip'], 9 ['P', 'preservePaths'], 10 ['U', 'unlink'], 11 ['strip-components', 'strip'], 12 ['stripComponents', 'strip'], 13 ['keep-newer', 'newer'], 14 ['keepNewer', 'newer'], 15 ['keep-newer-files', 'newer'], 16 ['keepNewerFiles', 'newer'], 17 ['k', 'keep'], 18 ['keep-existing', 'keep'], 19 ['keepExisting', 'keep'], 20 ['m', 'noMtime'], 21 ['no-mtime', 'noMtime'], 22 ['p', 'preserveOwner'], 23 ['L', 'follow'], 24 ['h', 'follow'] 25]) 26 27const parse = module.exports = opt => opt ? Object.keys(opt).map(k => [ 28 argmap.has(k) ? argmap.get(k) : k, opt[k] 29]).reduce((set, kv) => (set[kv[0]] = kv[1], set), Object.create(null)) : {} 30