mirror of
https://github.com/ArthurDanjou/artsite.git
synced 2026-01-14 18:59:59 +01:00
58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import type { H3Event } from 'h3'
|
|
|
|
const cachedWakatimeCoding = defineCachedFunction(async (event: H3Event) => {
|
|
const config = useRuntimeConfig(event)
|
|
|
|
return await $fetch<{ data: unknown[] }>(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.coding}.json`)
|
|
}, {
|
|
maxAge: 24 * 60 * 60,
|
|
name: 'wakatime',
|
|
getKey: () => 'coding'
|
|
})
|
|
|
|
const cachedWakatimeEditors = defineCachedFunction(async (event: H3Event) => {
|
|
const config = useRuntimeConfig(event)
|
|
|
|
return await $fetch<{ data: unknown[] }>(`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<{ data: unknown[] }>(`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<{ data: unknown[] }>(`https://wakatime.com/share/${config.wakatime.userId}/${config.wakatime.languages}.json`)
|
|
}, {
|
|
maxAge: 24 * 60 * 60,
|
|
name: 'wakatime',
|
|
getKey: () => 'languages'
|
|
})
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const [coding, editors, os, languages] = await Promise.all([
|
|
cachedWakatimeCoding(event),
|
|
cachedWakatimeEditors(event),
|
|
cachedWakatimeOs(event),
|
|
cachedWakatimeLanguages(event)
|
|
])
|
|
|
|
return {
|
|
coding: coding.data,
|
|
editors: editors.data,
|
|
os: os.data,
|
|
languages: languages.data
|
|
}
|
|
})
|