Semantic Versioning — подход к установке версии програмного продукта. Подробнее о методологоии можно прочитать на официальном сайте semver.org.
Реализуйте класс VersionManager, позволяющий управлять версией.
Изначально конструктор VersionManager принимает начальное значение версии в виде строки. Гарантируется, что версия корректная, например 17.2.5. Если конструктор вызывается без аргумента, устанавливается начальная версия 0.1.0.
Класс должен поддерживать следующие методы. Все методы, кроме release, должны быть chainable, подробнее в примере ниже.
"Cannot rollback!", если некуда откатывать."{MAJOR}.{MINOR}.{PATCH}".Чейнинг — мы можем цеплять вызовы друг к другу.
const vm = new VersionManager("2.0.3"); console.log( vm .major() // "3.0.0" .minor() // "3.1.0" .minor() // "3.2.0" .minor() // "3.3.0" .patch() // "3.3.1" .release() );
Ролбэк откатывает к предыдущей версии. Возможен множественный откат.
const vm = new VersionManager("1.2.3"); console.log( vm .minor() // "1.3.0" .major() // "2.0.0" .patch() // "2.0.1" .rollback() // "2.0.0" .rollback() // "1.3.0" .release() );