Есть веб-приложение, позволяющее находить картинки в формате GIF по ключевым словам и добавлять понравившиеся в избранное. Приложение использует ServiceWorker для работы офлайн, позволяя при отсутствии интернета открыть интерфейс и посмотреть избранное.
Код приложения находится в репозитории на GitHub.
Однако офлайновый сценарий был сломан последовательностью действий:
- Был проведён рефакторинг под названием «Более надёжное кеширование на этапе fetch», после которого стало невозможно обновить HTML-страницу: у клиентов она стала браться из кеша не только в офлайн-режиме, а всегда.
- Был сделан фикс этого бага, но перестал работать офлайн-режим: основной документ не загружался при отсутствии сети.
- Оказалось, что невозможно обновить статику из директорий vendor и assets. Но всё наладилось само собой после того, как был проведён рефакторинг под названием «Разложить файлы красиво». Правда, ServiceWorker перестал обрабатывать запросы за ресурсами приложения: HTML-страницей, скриптами и стилями из каталогов vendor и assets.
К сожалению, все коммиты в репозитории были объединены в один, поэтому необходимо исследовать проблему, локализовать и исправить ошибки.
В этом задании мы хотим проверить вашу способность разобраться в незнакомом коде и API и оценить ваш навык отладки. В качестве ответа пришлите ссылку на fork этого репозитория, где исправен баг и в README дописан раздел про ход ваших мыслей: какие ошибки и как вы нашли, почему они возникли, и какие способы их исправления существуют. Большим плюсом будет, если в файле вы также ответите на вопросы, помеченные в коде ServiceWorker маркером.
Мы не ограничиваем вас в использовании сторонних инструментов и библиотек, но ожидаем комментариев, почему были применены именно они.
Реализуйте возможность переключения в офлайн-режим после первого же запроса, а не после второго, как это происходило в работающем приложении до всех рефакторингов.