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),
							 | 
						||
| 
								 | 
							
								}
							 |