UNPKG

shaka-player

Version:
71 lines (61 loc) 1.78 kB
/*! @license * Shaka Player * Copyright 2016 Google LLC * SPDX-License-Identifier: Apache-2.0 */ goog.provide('shaka.deprecate.Version'); /** * A class that defines what a library version is within the deprecation * system. Within deprecation we only care about the major and minor versions. * * @final */ shaka.deprecate.Version = class { /** * @param {number} major * @param {number} minor */ constructor(major, minor) { this.major_ = major; this.minor_ = minor; } /** @return {number} */ major() { return this.major_; } /** @return {number} */ minor() { return this.minor_; } /** * Returns: * - positive if |this| > |other| * - zero if |this| == |other| * - negative if |this| < |other| * * @param {!shaka.deprecate.Version} other * @return {number} */ compareTo(other) { const majorCheck = this.major_ - other.major_; const minorCheck = this.minor_ - other.minor_; return majorCheck || minorCheck; } /** @override */ toString() { return 'v' + this.major_ + '.' + this.minor_; } /** * Parse the major and minor values out of a version string that is assumed * to follow the grammar: "vMAJOR.MINOR.". What comes after the last "." we * will ignore. * * @param {string} versionString * @return {!shaka.deprecate.Version} */ static parse(versionString) { // Make sure to drop the "v" from the front. We limit the number of splits // to two as we don't care what happens after the minor version number. // For example: 'a.b.c.d'.split('.', 2) == ['a', 'b'] const components = versionString.substring(1).split('.', /* limit= */ 2); return new shaka.deprecate.Version( Number(components[0]), Number(components[1])); } };