Код Middle Модули и npm обновлено

semver: проверка ^ и ~ диапазонов

Условие

Напиши satisfies(version, range) для версий MAJOR.MINOR.PATCH (без пре-релизов). Диапазон один из:

  • точная версия 1.2.3;
  • ^1.2.3: совместимые изменения. Разрешены версии >= 1.2.3 и < 2.0.0. Для нулевой мажорной правило строже: ^0.2.3 значит >= 0.2.3 < 0.3.0, а ^0.0.3 значит только 0.0.3;
  • ~1.2.3: только патчи, >= 1.2.3 < 1.3.0;
  • >=1.2.3.

Примеры

satisfies("1.4.0", "^1.2.3") // true
satisfies("2.0.0", "^1.2.3") // false
satisfies("1.2.2", "^1.2.3") // false

Как подойти

Подсказки: 2
  1. Сравнивай версии покомпонентно как числа.
  2. Для ^ верхняя граница: увеличить первый ненулевой компонент.

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

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

Термины по теме