MCPcopy
hub / github.com/freshframework/fresh / getLatestVersion

Function getLatestVersion

packages/init/src/init.ts:793–826  ·  view source on GitHub ↗
(
  pkg: string,
  fallback: string,
)

Source from the content-addressed store, hash-verified

791}
792
793async function getLatestVersion(
794 pkg: string,
795 fallback: string,
796): Promise<string> {
797 // deno-lint-ignore no-explicit-any
798 if ((globalThis as any).INIT_TEST) {
799 return fallback;
800 }
801
802 try {
803 const res = await fetch(`https://jsr.io/${pkg}/meta.json`);
804 const json = (await res.json()) as JsrMeta;
805
806 if (json.latest !== null) {
807 return json.latest;
808 }
809
810 const versions = Object.keys(json.versions);
811 if (versions.length === 0) throw new Error("No versions");
812
813 versions.sort((a, b) => {
814 const s1 = semver.parse(a);
815 const s2 = semver.parse(b);
816 return semver.compare(s1, s2);
817 });
818
819 return versions.at(-1)!;
820 } catch {
821 console.log(
822 `Could not fetch latest ${pkg} version. Falling back to: ${fallback}`,
823 );
824 return fallback;
825 }
826}

Callers 1

initProjectFunction · 0.70

Calls 1

jsonMethod · 0.80

Tested by

no test coverage detected