71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | // Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134
 | ||
|  | var _a; | ||
|  | const decodeMap = new Map([ | ||
|  |     [0, 65533], | ||
|  |     // C1 Unicode control character reference replacements
 | ||
|  |     [128, 8364], | ||
|  |     [130, 8218], | ||
|  |     [131, 402], | ||
|  |     [132, 8222], | ||
|  |     [133, 8230], | ||
|  |     [134, 8224], | ||
|  |     [135, 8225], | ||
|  |     [136, 710], | ||
|  |     [137, 8240], | ||
|  |     [138, 352], | ||
|  |     [139, 8249], | ||
|  |     [140, 338], | ||
|  |     [142, 381], | ||
|  |     [145, 8216], | ||
|  |     [146, 8217], | ||
|  |     [147, 8220], | ||
|  |     [148, 8221], | ||
|  |     [149, 8226], | ||
|  |     [150, 8211], | ||
|  |     [151, 8212], | ||
|  |     [152, 732], | ||
|  |     [153, 8482], | ||
|  |     [154, 353], | ||
|  |     [155, 8250], | ||
|  |     [156, 339], | ||
|  |     [158, 382], | ||
|  |     [159, 376], | ||
|  | ]); | ||
|  | /** | ||
|  |  * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point. | ||
|  |  */ | ||
|  | export const fromCodePoint =  | ||
|  | // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
 | ||
|  | (_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) { | ||
|  |     let output = ""; | ||
|  |     if (codePoint > 0xffff) { | ||
|  |         codePoint -= 0x10000; | ||
|  |         output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800); | ||
|  |         codePoint = 0xdc00 | (codePoint & 0x3ff); | ||
|  |     } | ||
|  |     output += String.fromCharCode(codePoint); | ||
|  |     return output; | ||
|  | }; | ||
|  | /** | ||
|  |  * Replace the given code point with a replacement character if it is a | ||
|  |  * surrogate or is outside the valid range. Otherwise return the code | ||
|  |  * point unchanged. | ||
|  |  */ | ||
|  | export function replaceCodePoint(codePoint) { | ||
|  |     var _a; | ||
|  |     if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { | ||
|  |         return 0xfffd; | ||
|  |     } | ||
|  |     return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint; | ||
|  | } | ||
|  | /** | ||
|  |  * Replace the code point if relevant, then convert it to a string. | ||
|  |  * | ||
|  |  * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead. | ||
|  |  * @param codePoint The code point to decode. | ||
|  |  * @returns The decoded code point. | ||
|  |  */ | ||
|  | export default function decodeCodePoint(codePoint) { | ||
|  |     return fromCodePoint(replaceCodePoint(codePoint)); | ||
|  | } | ||
|  | //# sourceMappingURL=decode_codepoint.js.map
 |