Skip to content

Commit 46f7cf6

Browse files
committed
Move util method to util lfile
1 parent 399f047 commit 46f7cf6

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

src/components/versioning/VersionFormattedCode.tsx

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,8 @@
11
import React, { useEffect, useRef, useState } from "react";
22
import CodeBlock from "@docusaurus/theme-classic/lib/theme/CodeBlock";
3-
import { getProjectVersion, VersionType } from "../../util/versionUtils";
3+
import { getProjectVersion, VersionType, getUserdevVersion } from "../../util/versionUtils";
44
import { useDocsVersion } from "@docusaurus/plugin-content-docs/client";
55

6-
async function getUserdevVersion(): Promise<string> {
7-
const response = await fetch("https://api.github.com/repos/PaperMC/paperweight/tags");
8-
9-
if (!response.ok) {
10-
return "<insert_latest_version>";
11-
}
12-
13-
const json = await response.json();
14-
return json[0].name.substring(1);
15-
}
16-
176
export default function VersionFormattedCode({
187
language = "",
198
title = "",
@@ -58,7 +47,7 @@ export default function VersionFormattedCode({
5847
await getProjectVersion("velocity", versionMeta)
5948
);
6049

61-
code = code.replace(/%%_USERDEV_VER_%%/g, await getUserdevVersion());
50+
code = code.replace(/%%_USERDEV_VER_%%/g, await getUserdevVersion().value());
6251

6352
if (mounted.current) {
6453
setFormattedCode({ code, inline });

src/util/versionUtils.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,16 @@ export const getProjectVersion = async (
8686

8787
return version;
8888
};
89+
90+
export const getUserdevVersion = (ttl: number = 5 * 60 * 1000): ExpiringValue<string> => {
91+
return new ExpiringValue(ttl, async () => {
92+
const response = await fetch("https://api.github.com/repos/PaperMC/paperweight/tags");
93+
94+
if (!response.ok) {
95+
return "<insert_latest_version>";
96+
}
97+
98+
const json = await response.json();
99+
return json[0].name.substring(1);
100+
});
101+
};

0 commit comments

Comments
 (0)