-
Notifications
You must be signed in to change notification settings - Fork 8
/
OnmsVersion.ts
95 lines (81 loc) · 2.19 KB
/
OnmsVersion.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import * as VersionCompare from 'version_compare';
/**
* An OpenNMS version.
* @module OnmsVersion
*/
export class OnmsVersion {
/** The numeric version (ex: `19.0.0`). */
public get version() {
return this.rv;
}
public set version(ver: string) {
this.rv = ver;
}
/** The display version (ex: `19.0.0-SNAPSHOT`). */
public get displayVersion() {
return this.dv || this.version;
}
public set displayVersion(displayVersion: string) {
this.dv = displayVersion;
}
/**
* The internal raw version.
* @hidden
*/
private rv: string;
/**
* The internal display version.
* @hidden
*/
private dv: string;
/**
* Construct a new version.
* @param version - The numeric version.
* @param displayVersion - The full display version
* (including extra designators like `x.x.x-SNAPSHOT`).
*/
constructor(version?: string, displayVersion?: string) {
this.version = version || '0.0.0';
this.displayVersion = displayVersion;
}
/**
* Returns true if this version is less than the passed version.
*/
public lt(compare = '0.0.0') {
return VersionCompare.lt(this.version, compare);
}
/**
* Returns true if this version is less than or equal to the passed version.
*/
public le(compare = '0.0.0') {
return VersionCompare.lte(this.version, compare);
}
/**
* Returns true if this version is equal to the passed version.
*/
public eq(compare = '0.0.0') {
return VersionCompare.matches(this.version, compare);
}
/**
* Returns true if this version is greater than or equal to the passed version.
*/
public ge(compare = '0.0.0') {
return VersionCompare.gte(this.version, compare);
}
/**
* Returns true if this version is greater than the passed version.
*/
public gt(compare = '0.0.0') {
return VersionCompare.gt(this.version, compare);
}
/**
* Create a new version object from this existing one.
*/
public clone() {
return new OnmsVersion(this.version, this.dv);
}
/** A human-readable representation of this version. */
public toString() {
return 'OnmsVersion[version=' + this.version + ',displayVersion=' + this.displayVersion + ']';
}
}