robosats/frontend/src/utils/checkVer.ts
KoalaSat 293c0b604d Refactor contexts and models (#921)
* Add SVG icons for map pins

* Add federation basis and new coordinator form (#793)

* Add new coordinator entry issue form

* Add Federation basis

* Fix eslint errors from F2F and fix languages

* Redo eslint @typescript-eslint/strict-boolean-expressions

* Robot Page working

* Contexts Working

* Garage Working

* CurrentOrder working

* Federation model working

---------

Co-authored-by: Reckless_Satoshi <reckless.satoshi@protonmail.com>
Co-authored-by: Reckless_Satoshi <90936742+Reckless-Satoshi@users.noreply.github.com>
2023-12-02 10:40:59 +00:00

49 lines
1.7 KiB
TypeScript

import packageJson from '../../package.json';
import { type Version } from '../models';
// Gets SemVer from backend /api/info and compares to local imported frontend version "localVer". Uses major,minor,patch.
// If minor of backend > minor of frontend, updateAvailable = true.
export const getClientVersion = function (): { semver: Version; short: string; long: string } {
const ver = packageJson.version.split('.');
const semver = { major: Number(ver[0]), minor: Number(ver[1]), patch: Number(ver[2]) };
const short = `v${ver[0]}.${ver[1]}.${ver[2]}`;
const long = `v${packageJson.version}-alpha`;
return { semver, short, long };
};
export const getHigherVer = (ver0: Version, ver1: Version): Version => {
if (ver1.major == null || ver0.minor == null || ver0.patch == null) {
return ver0;
} else if (ver0.major > ver1.major) {
return ver0;
} else if (ver0.major < ver1.major) {
return ver1;
} else if (ver0.minor > ver1.minor) {
return ver0;
} else if (ver0.minor < ver1.minor) {
return ver1;
} else if (ver0.patch > ver1.patch) {
return ver0;
} else if (ver0.patch < ver1.patch) {
return ver1;
} else {
return ver0;
}
};
export const checkVer: (coordinatorVersion: Version) => boolean = (coordinatorVersion) => {
let updateAvailable: boolean = false;
if (coordinatorVersion != null) {
const { major, minor, patch } = coordinatorVersion;
if (!(major === null || minor === null || patch === null)) {
const client = getClientVersion().semver;
updateAvailable = major > Number(client.major) || minor > Number(client.minor);
// const patchAvailable: boolean = !updateAvailable && patch > Number(client.semver[2]);
}
}
return updateAvailable;
};
export default checkVer;