diff options
Diffstat (limited to 'vanilla/node_modules/undici/lib/encoding/index.js')
| -rw-r--r-- | vanilla/node_modules/undici/lib/encoding/index.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vanilla/node_modules/undici/lib/encoding/index.js b/vanilla/node_modules/undici/lib/encoding/index.js new file mode 100644 index 0000000..41f7794 --- /dev/null +++ b/vanilla/node_modules/undici/lib/encoding/index.js @@ -0,0 +1,33 @@ +'use strict' + +const textDecoder = new TextDecoder() + +/** + * @see https://encoding.spec.whatwg.org/#utf-8-decode + * @param {Uint8Array} buffer + */ +function utf8DecodeBytes (buffer) { + if (buffer.length === 0) { + return '' + } + + // 1. Let buffer be the result of peeking three bytes from + // ioQueue, converted to a byte sequence. + + // 2. If buffer is 0xEF 0xBB 0xBF, then read three + // bytes from ioQueue. (Do nothing with those bytes.) + if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { + buffer = buffer.subarray(3) + } + + // 3. Process a queue with an instance of UTF-8’s + // decoder, ioQueue, output, and "replacement". + const output = textDecoder.decode(buffer) + + // 4. Return output. + return output +} + +module.exports = { + utf8DecodeBytes +} |
