Pre-generate homepage (#1699)

* Pregenerate homepage:

* fix lint
This commit is contained in:
Geometrically
2024-05-03 14:48:14 -07:00
committed by GitHub
parent 5a166d2455
commit 611bec38b4
4 changed files with 46 additions and 33 deletions

View File

@@ -110,11 +110,9 @@ export default defineNuxtConfig({
donationPlatforms?: any[]
reportTypes?: any[]
} = {}
let homePageProjects: any[] = []
try {
state = JSON.parse(await fs.readFile('./generated/state.json', 'utf8'))
homePageProjects = JSON.parse(await fs.readFile('./generated/homepage.json', 'utf8'))
} catch {
// File doesn't exist, create folder
await fs.mkdir('./generated', { recursive: true })
@@ -127,8 +125,7 @@ export default defineNuxtConfig({
state.lastGenerated &&
new Date(state.lastGenerated).getTime() + TTL > new Date().getTime() &&
// ...but only if the API URL is the same
state.apiUrl === API_URL &&
homePageProjects.length !== 0
state.apiUrl === API_URL
) {
return
}
@@ -143,25 +140,23 @@ export default defineNuxtConfig({
},
}
const [categories, loaders, gameVersions, donationPlatforms, reportTypes, projects] =
await Promise.all([
const [categories, loaders, gameVersions, donationPlatforms, reportTypes] = await Promise.all(
[
$fetch(`${API_URL}tag/category`, headers),
$fetch(`${API_URL}tag/loader`, headers),
$fetch(`${API_URL}tag/game_version`, headers),
$fetch(`${API_URL}tag/donation_platform`, headers),
$fetch(`${API_URL}tag/report_type`, headers),
$fetch(`${API_URL}projects_random?count=40`, headers),
])
]
)
state.categories = categories
state.loaders = loaders
state.gameVersions = gameVersions
state.donationPlatforms = donationPlatforms
state.reportTypes = reportTypes
homePageProjects = projects
await fs.writeFile('./generated/state.json', JSON.stringify(state))
await fs.writeFile('./generated/homepage.json', JSON.stringify(homePageProjects))
console.log('Tags generated!')
},
@@ -374,6 +369,10 @@ export default defineNuxtConfig({
devtools: {
enabled: true,
},
routeRules: {
'/': { prerender: true },
'/app': { prerender: true },
},
})
function getApiUrl() {