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.
		
		
		
		
		
			
		
			
				
					24 lines
				
				535 B
			
		
		
			
		
	
	
					24 lines
				
				535 B
			| 
											3 years ago
										 | '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), | ||
|  | } |