getsentry / getsentry/sentry-javascript
[Replay] Read response body stream instead of `body.text()`
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- TypeScript
- Estrelas
- 8.7k
- Forks
- 1.8k
- Merge médio
- 1d 18h
- PRs com merge (30d)
- 541
Descrição
Currently, we use await body.text() to get the response body of a fetch request for replay, both to get the body content as well as to calculate the length of the body.
This has the problem that if the body is a continuous stream, this will never (or very late) resolve. We kind-of solved this recently at least insofar as that we abort after 500ms, but since we still called await body.text() before we'll continue to read from the stream, even if we are discarding it.
We should look into reading the stream manually instead of using body.text(), which would unlock us being able to stop reading it after some time. But this means we need to take care of text conversion in there ourselves.
Related to https://github.com/getsentry/sentry-javascript/issues/9616
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece rastreando o tratamento de respostas fetch no Replay, que atualmente chama body.text(), e leia a issue relacionada 9616 para obter contexto. Verifique se o stream da resposta pode ser lido manualmente com conversão para texto e cálculo do comprimento, permitindo que streams contínuos parem após o timeout sem continuar consumindo o body.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- typescript
- Domínio
- web-dev
- Tipo de issue
- Funcionalidade
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100