import { SemVer } from 'semver'; import { GenericVersioningApi } from '../generic.ts'; import type { GenericVersion, VersioningApi } from '../types.ts'; export const id = 'glasskube'; export const displayName = 'glasskube'; export const urls = []; export const supportsRanges = false; export class GlasskubeVersioningApi extends GenericVersioningApi { protected override _parse(version: string): GenericVersion | null { let parsedVersion: SemVer; try { parsedVersion = new SemVer(version); } catch { return null; } const result: GenericVersion = { release: [parsedVersion.major, parsedVersion.minor, parsedVersion.patch], prerelease: parsedVersion.prerelease.length > 0 ? parsedVersion.prerelease.join('.') : undefined, }; const build = parsedVersion.build.at(0); if (build) { try { result.release.push(parseInt(build, 10)); } catch { /* noop */ } } return result; } } export const api: VersioningApi = new GlasskubeVersioningApi(); export default api;