Когда большинство людей думают о путешествиях во времени, они думают о библиотеках, таких как Redux DevTools, которые записывают действия, и средствах запуска тестов, таких как Cypress, которые имитируют вызовы API. Эти подходы хорошо работают для фреймворков и сквозных тестов, но не обобщают.

Replay.io записывает входные данные среды выполнения и необходимую недетерминированность, необходимую для воспроизведения среды выполнения постфактум. Двоичные биты не так интересны. Что интересно, среда выполнения думает, что взаимодействует с реальным пользователем и разговаривает с реальным интернетом, когда он просто находится в матрице.

  • Повтор не записывает видео во время записи. Воспроизведение воссоздает видео во время воспроизведения.
  • Воспроизведение не записывает тела сетевых запросов и ответов во время записи. Replay собирает их постфактум во время воспроизведения.

Инструменты разработчика React

Возможность воспроизведения также упрощает интеграцию с React DevTools. Когда Replay записывает приложение React, Replay записывает сообщения, которые сценарий контента отправил бы в React DevTools, если бы он был запущен. Когда пользователь хочет просмотреть React DevTools в определенный момент времени, Replay отправляет уже выполненные операции в React DevTools.

Когда пользователь хочет просмотреть реквизиты, состояние и хуки компонента, React DevTools отправляет выражение в сценарий контента, который оценивается и возвращается. Replay обманывает React DevTools, заставляя его думать, что он находится в нормальной среде, хотя на самом деле он также находится в матрице!

Соответствующие ссылки:

Вскоре мы добавим Redux DevTools и хотели бы увидеть Vue DevTools, Cypress DevTools, Apollo DevTools и многие другие. Воспроизведение — это гораздо больше, чем возможность записи, это путешествие во времени как услуга!