getsentry / getsentry/sentry-javascript

[Replay] Read response body stream instead of `body.text()`

Aberta
#9,635 1 comentário 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Browser Improvement Replays
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

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. 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

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.