# All files / tar/lib winchars.js

100% Statements 12/12
100% Branches 0/0
100% Functions 7/7
100% Lines 8/8

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24

    9x

    9x
    45x

    45x
    45x

    9x
    30x
    20x

     'use strict'

    // When writing files on Windows, translate the characters to their
    // 0xf000 higher-encoded versions.

    const raw = [
      '|',
      '<',
      '>',
      '?',
      ':'
    ]

    const win = raw.map(char =>
      String.fromCharCode(0xf000 + char.charCodeAt(0)))

    const toWin = new Map(raw.map((char, i) => [char, win[i]]))
    const toRaw = new Map(win.map((char, i) => [char, raw[i]]))

    module.exports = {
      encode: s => raw.reduce((s, c) => s.split(c).join(toWin.get(c)), s),
      decode: s => win.reduce((s, c) => s.split(c).join(toRaw.get(c)), s)
    }