Код Middle Навигация обновлено

Разбор диплинка в маршрут

Условие

Напишите parseLink(url), которая превращает ссылку в описание экрана. Поддерживаемые адреса (схема myapp:// или домен https://shop.example):

  • / или пусто: { "screen": "Home", "params": {} };
  • /item/<id>: { "screen": "Item", "params": { "id": "<id>" } };
  • /orders и /orders/<id>: { "screen": "Orders", "params": {} } или { "screen": "Order", "params": { "id": "<id>" } }.

Параметры запроса (?ref=push) добавляются в params как строки. Хвостовой / не важен. Чужой домен, другая схема или неизвестный путь: { "screen": "NotFound", "params": {} }.

Примеры

parseLink("myapp://item/42") // {"screen":"Item","params":{"id":"42"}}
parseLink("https://shop.example/item/42") // {"screen":"Item","params":{"id":"42"}}
parseLink("https://shop.example/") // {"screen":"Home","params":{}}

Как подойти

Подсказки: 2
  1. Сначала отрежьте известный префикс; проверка startsWith('https://shop.example') без слеша пропустит поддельный домен.
  2. Путь разбейте по / и выбросьте пустые сегменты.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.