1- import { getCommitsLanguageSVGWithThemeName } from '../../src/cards/most-commit-language-card' ;
2- import { changToNextGitHubToken } from '../utils/github-token-updater' ;
3- import { getErrorMsgCard } from '../utils/error-card' ;
4- import { translateLanguage } from '../../src/utils/translator' ;
5- import type { VercelRequest , VercelResponse } from '@vercel/node' ;
1+ import { getCommitsLanguageSVGWithThemeName } from '../../src/cards/most-commit-language-card' ;
2+ import { changToNextGitHubToken } from '../utils/github-token-updater' ;
3+ import { getErrorMsgCard } from '../utils/error-card' ;
4+ import { translateLanguage } from '../../src/utils/translator' ;
5+ import type { VercelRequest , VercelResponse } from '@vercel/node' ;
66
77export default async ( req : VercelRequest , res : VercelResponse ) => {
8- let { username, theme = 'default' , exclude = '' } = req . query ;
8+ let { username, theme = 'default' , exclude = '' } = req . query ;
99
1010 if ( typeof theme !== 'string' ) {
1111 res . status ( 400 ) . send ( 'theme must be a string' ) ;
@@ -31,13 +31,18 @@ export default async (req: VercelRequest, res: VercelResponse) => {
3131 try {
3232 const cardSVG = await getCommitsLanguageSVGWithThemeName ( username , theme , excludeArr ) ;
3333 res . setHeader ( 'Content-Type' , 'image/svg+xml' ) ;
34+ res . setHeader ( 'Cache-Control' , 'public, max-age=14400, s-maxage=86400' ) ;
3435 res . send ( cardSVG ) ;
3536 return ;
3637 } catch ( err : any ) {
3738 console . log ( err . message ) ;
3839 // We update github token and try again, until getNextGitHubToken throw an Error
39- changToNextGitHubToken ( tokenIndex ) ;
40- tokenIndex += 1 ;
40+ if ( err . response && ( err . response . status === 403 || err . response . status === 401 ) ) {
41+ changToNextGitHubToken ( tokenIndex ) ;
42+ tokenIndex += 1 ;
43+ } else {
44+ throw err ;
45+ }
4146 }
4247 }
4348 } catch ( err : any ) {
0 commit comments