mirror of
https://github.com/ASzc/change-string-case-action.git
synced 2024-11-24 00:33:50 +08:00
27 lines
660 B
JavaScript
27 lines
660 B
JavaScript
'use strict'
|
|
|
|
// Node has always utf-8
|
|
const utf8Decoder = new TextDecoder('utf-8')
|
|
const textDecoders = new Map([
|
|
['utf-8', utf8Decoder],
|
|
['utf8', utf8Decoder]
|
|
])
|
|
|
|
function decodeText (text, textEncoding, destEncoding) {
|
|
if (text) {
|
|
if (textDecoders.has(destEncoding)) {
|
|
try {
|
|
return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding))
|
|
} catch (e) { }
|
|
} else {
|
|
try {
|
|
textDecoders.set(destEncoding, new TextDecoder(destEncoding))
|
|
return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding))
|
|
} catch (e) { }
|
|
}
|
|
}
|
|
return text
|
|
}
|
|
|
|
module.exports = decodeText
|