Files
start-os/web/projects/shared/src/services/exver.service.ts
Matt Hill 1be9cdae67 use hardware requirements to display conflicts and prevent install (#2700)
* use hardware requirements to display conflicts and prevent install

* better messaging and also consider OS compatibility

* wip: backend hw requirements

* update backend components

* migration

---------

Co-authored-by: Aiden McClelland <me@drbonez.dev>
2024-10-29 19:48:03 +00:00

40 lines
943 B
TypeScript

import { Injectable } from '@angular/core'
import { ExtendedVersion, VersionRange } from '@start9labs/start-sdk'
@Injectable({
providedIn: 'root',
})
export class Exver {
constructor() {}
compareExver(lhs: string, rhs: string): number | null {
if (!lhs || !rhs) return null
try {
return ExtendedVersion.parse(lhs).compareForSort(
ExtendedVersion.parse(rhs),
)
} catch (e) {
return null
}
}
greaterThanOrEqual(lhs: string, rhs: string): boolean | null {
if (!lhs || !rhs) return null
try {
return ExtendedVersion.parse(lhs).greaterThanOrEqual(
ExtendedVersion.parse(rhs),
)
} catch (e) {
return null
}
}
satisfies(version: string, range: string): boolean {
return ExtendedVersion.parse(version).satisfies(VersionRange.parse(range))
}
getFlavor(version: string): string | null {
return ExtendedVersion.parse(version).flavor
}
}