feat(smartversion): add equality comparison methods for SmartVersion instances and version strings

This commit is contained in:
2026-04-07 16:29:20 +00:00
parent d900fa3494
commit ab09d44759
4 changed files with 29 additions and 1 deletions

View File

@@ -1,5 +1,12 @@
# Changelog
## 2026-04-07 - 3.1.0 - feat(smartversion)
add equality comparison methods for SmartVersion instances and version strings
- Adds equals() to compare two SmartVersion instances
- Adds equalsString() to compare a SmartVersion against a version string
- Covers equality behavior with node+chromium tests
## 2026-04-07 - 3.0.6 - fix(tooling)
migrate project config and test tooling while hardening fuzzy version parsing

View File

@@ -33,4 +33,14 @@ tap.test('should create a patch version', async () => {
console.log(newVersion.versionString);
})
tap.test('should compare versions for equality', async () => {
const v1 = new smartversion.SmartVersion('1.2.3');
const v2 = new smartversion.SmartVersion('1.2.3');
const v3 = new smartversion.SmartVersion('1.2.4');
expect(v1.equals(v2)).toBeTrue();
expect(v1.equals(v3)).toBeFalse();
expect(v1.equalsString('1.2.3')).toBeTrue();
expect(v1.equalsString('1.2.4')).toBeFalse();
});
export default tap.start();

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/smartversion',
version: '3.0.6',
version: '3.1.0',
description: 'A library to handle semantic versioning with ease.'
}

View File

@@ -54,6 +54,17 @@ export class SmartVersion {
return plugins.semver.lt(this.versionString, versionStringArg);
}
public equals(smartVersionArg: SmartVersion) {
return this.equalsString(smartVersionArg.versionString);
}
/**
* compares the version of this against a string for equality
*/
public equalsString(versionStringArg: string) {
return plugins.semver.eq(this.versionString, versionStringArg);
}
/**
* tries to get the best match from a range of available versions
*/