1.1.1•Updated a month ago
import { Sort } from "./sort_utils.ts";
export const LatestVersionNumber = (versions: string[]) => {
return versions?.sort(Sort.Version.Descending)?.[0] || null;
}
export const IsSameVersionNumber = (a?: string | null, b?: string | null) => {
if(!a || !b) return false;
return SerializeVersionNumber(a) == SerializeVersionNumber(b);
}
export const IsValidVersionNumber = (version: unknown) => {
if(typeof version !== 'string') return false;
if(!version.match(/^(?:\d+\.){1,3}\d+$/)) return false;
return true;
}
export const SerializeVersionNumber = (version: string) =>
version
.split('.')
.map(Number)
.map((d, i) => d * 100000**(4-i-1))
.reduce((running, current) => running + current, 0);
export const ListIncludesVersion = (list: string[], version: string) => {
return list.map(SerializeVersionNumber).includes(SerializeVersionNumber(version));
}