in src/installer.ts [77:107]
async function findMatch(
versionSpec: string,
osFileName: string,
token: string
): Promise<IBazeliskVersion | undefined> {
let versions = new Map<string, IBazeliskVersion>();
let bazeliskVersions = await getVersionsFromDist(token);
bazeliskVersions.forEach((bazeliskVersion: IBazeliskVersion) => {
const hasRelevantAsset: boolean = bazeliskVersion.assets.some(
(asset: IBazeliskAsset) => {
return asset.name == osFileName;
}
);
if (hasRelevantAsset) {
const version: semver.SemVer | null = semver.coerce(
bazeliskVersion.tag_name
);
if (version) {
versions.set(version.version, bazeliskVersion);
}
}
});
// get the latest version that matches the version spec
let version: string = evaluateVersions(
Array.from(versions.keys()),
versionSpec
);
return versions.get(version);
}