You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
535 B
23 lines
535 B
'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), |
|
}
|
|
|