Refactor le gestionnaire d'événements pour utiliser des fonctions mises en cache pour récupérer les données Wakatime en parallèle.

This commit is contained in:
2025-07-29 14:49:02 +00:00
parent c8d2b2952f
commit ee753468a2

View File

@@ -1,18 +1,57 @@
export default defineCachedEventHandler(async (event) => { import { H3Event } from 'h3'
const { wakatime } = useRuntimeConfig(event)
const coding = await $fetch(`https://wakatime.com/share/${wakatime.userId}/${wakatime.coding}.json`) export default defineEventHandler(async (event) => {
const editors = await $fetch(`https://wakatime.com/share/${wakatime.userId}/${wakatime.editors}.json`) const [coding, editors, os, languages] = await Promise.all([
const os = await $fetch(`https://wakatime.com/share/${wakatime.userId}/${wakatime.os}.json`) cachedWakatimeCoding(event),
const languages = await $fetch(`https://wakatime.com/share/${wakatime.userId}/${wakatime.languages}.json`) cachedWakatimeEditors(event),
cachedWakatimeOs(event),
cachedWakatimeLanguages(event)
])
return { return {
coding, coding,
editors, editors,
os, os,
languages, languages
} }
})
const cachedWakatimeCoding = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.coding}.json`)
}, { }, {
maxAge: 24 * 60 * 60, maxAge: 24 * 60 * 60,
name: 'wakatime', name: 'wakatime',
getKey: () => 'coding'
}) })
const cachedWakatimeEditors = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.editors}.json`)
}, {
maxAge: 24 * 60 * 60,
name: 'wakatime',
getKey: () => 'editors'
})
const cachedWakatimeOs = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.os}.json`)
}, {
maxAge: 24 * 60 * 60,
name: 'wakatime',
getKey: () => 'os'
})
const cachedWakatimeLanguages = defineCachedFunction(async (event: H3Event) => {
const config = useRuntimeConfig(event)
return await $fetch(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.languages}.json`)
}, {
maxAge: 24 * 60 * 60,
name: 'wakatime',
getKey: () => 'languages'
})