# All files / tar/lib types.js

100% Statements 3/3
100% Branches 0/0
100% Functions 1/1
100% Lines 2/2

    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

    14x

    294x
     'use strict'
    // map types from key to human-friendly name
    exports.name = new Map([
      ['0', 'File'],
      // same as File
      ['', 'OldFile'],
      ['1', 'Link'],
      ['2', 'SymbolicLink'],
      // Devices and FIFOs aren't fully supported
      // they are parsed, but skipped when unpacking
      ['3', 'CharacterDevice'],
      ['4', 'BlockDevice'],
      ['5', 'Directory'],
      ['6', 'FIFO'],
      // same as File
      ['7', 'ContiguousFile'],
      // pax headers
      ['g', 'GlobalExtendedHeader'],
      ['x', 'ExtendedHeader'],
      // vendor-specific stuff
      // skip
      ['A', 'SolarisACL'],
      // like 5, but with data, which should be skipped
      ['D', 'GNUDumpDir'],
      // metadata only, skip
      ['I', 'Inode'],
      // data = link path of next file
      ['K', 'NextFileHasLongLinkpath'],
      // data = path of next file
      ['L', 'NextFileHasLongPath'],
      // skip
      ['M', 'ContinuationFile'],
      // like L
      ['N', 'OldGnuLongPath'],
      // skip
      ['S', 'SparseFile'],
      // skip
      ['V', 'TapeVolumeHeader'],
      // like x
      ['X', 'OldExtendedHeader']
    ])

    // map the other direction
    exports.code = new Map(Array.from(exports.name).map(kv => [kv[1], kv[0]]))