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.
26 lines
660 B
26 lines
660 B
// taken from: |
|
// https://github.com/twitter/twemoji/blob/47732c7/twemoji-generator.js#L848-L866 |
|
exports.unicodeToFilename = (str) => { |
|
let result = ''; |
|
let charCode = 0; |
|
let p = 0; |
|
let i = 0; |
|
while (i < str.length) { |
|
charCode = str.charCodeAt(i++); |
|
if (p) { |
|
if (result.length > 0) { |
|
result += '-'; |
|
} |
|
result += (0x10000 + ((p - 0xD800) << 10) + (charCode - 0xDC00)).toString(16); |
|
p = 0; |
|
} else if (0xD800 <= charCode && charCode <= 0xDBFF) { |
|
p = charCode; |
|
} else { |
|
if (result.length > 0) { |
|
result += '-'; |
|
} |
|
result += charCode.toString(16); |
|
} |
|
} |
|
return result; |
|
};
|
|
|