@@ -4,39 +4,52 @@ import {
44 ERROR_THROW_INCOMPLETE_PARAM ,
55} from '~~/shared/utils/constants'
66
7- export default defineCachedEventHandler ( async event => {
8- const provider = getRouterParam ( event , 'provider' )
9- const repo = getRouterParam ( event , 'repo' )
10- const owner = getRouterParam ( event , 'owner' )
11- const path = getRouterParam ( event , 'path' )
12-
13- if ( ! repo || ! provider || ! owner || ! path ) {
14- throw createError ( {
15- status : 404 ,
16- statusMessage : ERROR_THROW_INCOMPLETE_PARAM ,
17- } )
18- }
7+ export default defineCachedEventHandler (
8+ async event => {
9+ const provider = getRouterParam ( event , 'provider' )
10+ const repo = getRouterParam ( event , 'repo' )
11+ const owner = getRouterParam ( event , 'owner' )
12+ const path = getRouterParam ( event , 'path' )
13+
14+ if ( ! repo || ! provider || ! owner || ! path ) {
15+ throw createError ( {
16+ status : 404 ,
17+ statusMessage : ERROR_THROW_INCOMPLETE_PARAM ,
18+ } )
19+ }
1920
20- try {
21- console . log ( { provider } )
21+ try {
22+ console . log ( { provider } )
2223
23- switch ( provider as ProviderId ) {
24- case 'github' :
25- return await getGithubMarkDown ( owner , repo , path )
24+ switch ( provider as ProviderId ) {
25+ case 'github' :
26+ return await getGithubMarkDown ( owner , repo , path )
2627
27- default :
28- throw createError ( {
29- status : 404 ,
30- statusMessage : ERROR_CHANGELOG_NOT_FOUND ,
31- } )
28+ default :
29+ throw createError ( {
30+ status : 404 ,
31+ statusMessage : ERROR_CHANGELOG_NOT_FOUND ,
32+ } )
33+ }
34+ } catch ( error ) {
35+ handleApiError ( error , {
36+ statusCode : 502 ,
37+ message : ERROR_CHANGELOG_FILE_FAILED ,
38+ } )
3239 }
33- } catch ( error ) {
34- handleApiError ( error , {
35- statusCode : 502 ,
36- message : ERROR_CHANGELOG_FILE_FAILED ,
37- } )
38- }
39- } )
40+ } ,
41+ {
42+ maxAge : CACHE_MAX_AGE_ONE_HOUR * 2 , // 2 hours
43+ swr : true ,
44+ getKey : event => {
45+ const provider = getRouterParam ( event , 'provider' ) ?? ''
46+ const repo = getRouterParam ( event , 'repo' ) ?? ''
47+ const owner = getRouterParam ( event , 'owner' ) ?? ''
48+ const path = getRouterParam ( event , 'path' ) ?? ''
49+ return `changelogMarkdown:v1:${ provider } :${ owner } :${ repo } :${ path . replaceAll ( '/' , ':' ) } `
50+ } ,
51+ } ,
52+ )
4053
4154async function getGithubMarkDown ( owner : string , repo : string , path : string ) {
4255 const data = await $fetch ( `https://ungh.cc/repos/${ owner } /${ repo } /files/HEAD/${ path } ` )
0 commit comments