Skip to content

Commit 1db9f67

Browse files
author
vektra-bot
committed
Deployed 09bf81f to v3.0 with MkDocs 1.6.1 and mike 2.2.0.dev0
1 parent 9ab55e0 commit 1db9f67

File tree

1 file changed

+52
-4
lines changed

1 file changed

+52
-4
lines changed

v3.0/installation/index.html

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -894,19 +894,54 @@ <h3 id="homebrew">Homebrew<a class="headerlink" href="#homebrew" title="Permanen
894894
brew upgrade mockery
895895
</code></pre></div>
896896
<script type="text/javascript">
897+
const start = performance.now();
897898

898899
function insert_installation_command(element_to_override,version){
899900
element_to_override.innerHTML=`
900-
<div class="highlight"><span class="filename">Text Only</span><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>go install github.com/vektra/mockery/v3@${version}
901+
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>go install github.com/vektra/mockery/v3@${version}
901902
</code></pre></div>
902903
`;
903904
}
904905

906+
function compareSemver(v1, v2) {
907+
const parseVersion = (version) => {
908+
const [main, preRelease] = version.replace(/^v/, "").split("-");
909+
const mainParts = main.split('.').map(Number);
910+
const preParts = preRelease ? preRelease.split('.').map((part) => isNaN(part) ? part : Number(part)) : [];
911+
return { mainParts, preParts };
912+
};
913+
914+
const compareParts = (a, b) => {
915+
for (let i = 0; i < Math.max(a.length, b.length); i++) {
916+
const partA = a[i] || 0;
917+
const partB = b[i] || 0;
918+
if (partA > partB) return 1;
919+
if (partA < partB) return -1;
920+
}
921+
return 0;
922+
};
923+
924+
const { mainParts: main1, preParts: pre1 } = parseVersion(v1);
925+
const { mainParts: main2, preParts: pre2 } = parseVersion(v2);
926+
927+
const mainComparison = compareParts(main1, main2);
928+
if (mainComparison !== 0) return mainComparison;
929+
930+
// Compare pre-release parts
931+
if (pre1.length === 0 && pre2.length > 0) return 1; // No pre-release > pre-release
932+
if (pre1.length > 0 && pre2.length === 0) return -1; // Pre-release < no pre-release
933+
return compareParts(pre1, pre2);
934+
}
935+
936+
937+
905938
const version_key="/mockery/version";
906939
const element = document.getElementById('mockery-install-go-command');
907-
const url = `https://api.github.com/repos/vektra/mockery/releases/tags/v3`;
940+
const url = `https://api.github.com/repos/vektra/mockery/releases`;
908941

909942
let version = sessionStorage.getItem(version_key);
943+
944+
910945
if (version !== null) {
911946
insert_installation_command(element,version);
912947
} else {
@@ -917,15 +952,28 @@ <h3 id="homebrew">Homebrew<a class="headerlink" href="#homebrew" title="Permanen
917952
fetch(request)
918953
.then((response) => response.json())
919954
.then((data) => {
920-
sessionStorage.setItem(version_key, data.name);
921-
insert_installation_command(element,data.name);
955+
let latest_version = "";
956+
data.forEach((release) => {
957+
let release_tag=release.tag_name;
958+
if (!release_tag.startsWith("v3")){
959+
return
960+
};
961+
if (latest_version === "" || compareSemver(release_tag, latest_version) === 1) {
962+
latest_version=release_tag;
963+
};
964+
});
965+
sessionStorage.setItem(version_key, latest_version);
966+
insert_installation_command(element,latest_version);
922967
})
923968
.catch((error) =>{
924969
console.error(error);
925970
element.innerHTML=`failed to fetch latest release info from: https://api.github.com/repos/vektra/mockery/releases/tags/v3`;
926971
}
927972
);
928973
}
974+
975+
const end = performance.now();
976+
console.log(`Execution time for finding latest mockery tag: ${end - start} milliseconds`);
929977
</script>
930978

931979

0 commit comments

Comments
 (0)