node:string_decoder
O módulo node:string_decoder no Azion Runtime: como StringDecoder converte dados de Buffer em strings e um exemplo que decodifica um caractere multibyte.
O módulo node:string_decoder decodifica objetos Buffer em strings, como descreve a documentação do string_decoder do Node.js. Use-o quando dados binários chegam em partes, como o corpo de uma requisição ou de uma resposta enviado em chunks, e um caractere multibyte pode ficar dividido entre duas partes. No Azion Runtime, o build aceita import string_decoder from "node:string_decoder", e StringDecoder retorna os mesmos valores em uma function com deploy feito e com azion dev.
Um StringDecoder criado com utf8 guarda um caractere incompleto entre as chamadas de write(). Ao receber os bytes 0xe2 0x82, ele retorna uma string vazia; ao receber o byte seguinte, 0xac, ele retorna €; e end() retorna então uma string vazia. Em um decoder criado com base64, write() de ab seguido de end() de c retorna YWJj no conjunto das duas chamadas. Buffer é um global, por isso uma function pode chamar Buffer.from() sem importar node:buffer.
Exemplo
A function abaixo decodifica os dois bytes do caractere ¢, registra o resultado em log e o retorna no corpo da resposta:
A function registra ¢ em log e responde com o status 200 e este corpo: