11// @ts -check
22
3- import { clampValue , CONSTANTS } from "./utils.js" ;
3+ import { clampValue } from "./utils.js" ;
4+
5+ const MIN = 60 ;
6+ const HOUR = 60 * MIN ;
7+ const DAY = 24 * HOUR ;
8+
9+ /**
10+ * Common durations in seconds.
11+ */
12+ const DURATIONS = {
13+ ONE_MINUTE : MIN ,
14+ FIVE_MINUTES : 5 * MIN ,
15+ TEN_MINUTES : 10 * MIN ,
16+ FIFTEEN_MINUTES : 15 * MIN ,
17+ THIRTY_MINUTES : 30 * MIN ,
18+
19+ TWO_HOURS : 2 * HOUR ,
20+ FOUR_HOURS : 4 * HOUR ,
21+ SIX_HOURS : 6 * HOUR ,
22+ EIGHT_HOURS : 8 * HOUR ,
23+ TWELVE_HOURS : 12 * HOUR ,
24+
25+ ONE_DAY : DAY ,
26+ TWO_DAY : 2 * DAY ,
27+ SIX_DAY : 6 * DAY ,
28+ TEN_DAY : 10 * DAY ,
29+ } ;
30+
31+ /**
32+ * Common cache TTL values in seconds.
33+ */
34+ const CACHE_TTL = {
35+ STATS_CARD : {
36+ DEFAULT : DURATIONS . ONE_DAY ,
37+ MIN : DURATIONS . TWELVE_HOURS ,
38+ MAX : DURATIONS . TWO_DAY ,
39+ } ,
40+ TOP_LANGS_CARD : {
41+ DEFAULT : DURATIONS . SIX_DAY ,
42+ MIN : DURATIONS . TWO_DAY ,
43+ MAX : DURATIONS . TEN_DAY ,
44+ } ,
45+ PIN_CARD : {
46+ DEFAULT : DURATIONS . TEN_DAY ,
47+ MIN : DURATIONS . ONE_DAY ,
48+ MAX : DURATIONS . TEN_DAY ,
49+ } ,
50+ GIST_CARD : {
51+ DEFAULT : DURATIONS . TWO_DAY ,
52+ MIN : DURATIONS . ONE_DAY ,
53+ MAX : DURATIONS . TEN_DAY ,
54+ } ,
55+ WAKATIME_CARD : {
56+ DEFAULT : DURATIONS . ONE_DAY ,
57+ MIN : DURATIONS . TWELVE_HOURS ,
58+ MAX : DURATIONS . TWO_DAY ,
59+ } ,
60+ ERROR : DURATIONS . TEN_MINUTES ,
61+ } ;
462
563/**
664 * Resolves the cache seconds based on the requested, default, min, and max values.
@@ -56,7 +114,7 @@ const setCacheHeaders = (res, cacheSeconds) => {
56114 "Cache-Control" ,
57115 `max-age=${ cacheSeconds } , ` +
58116 `s-maxage=${ cacheSeconds } , ` +
59- `stale-while-revalidate=${ CONSTANTS . ONE_DAY } ` ,
117+ `stale-while-revalidate=${ DURATIONS . ONE_DAY } ` ,
60118 ) ;
61119} ;
62120
@@ -80,10 +138,16 @@ const setErrorCacheHeaders = (res) => {
80138 // Use lower cache period for errors.
81139 res . setHeader (
82140 "Cache-Control" ,
83- `max-age=${ CONSTANTS . ERROR_CACHE_SECONDS } , ` +
84- `s-maxage=${ CONSTANTS . ERROR_CACHE_SECONDS } , ` +
85- `stale-while-revalidate=${ CONSTANTS . ONE_DAY } ` ,
141+ `max-age=${ CACHE_TTL . ERROR } , ` +
142+ `s-maxage=${ CACHE_TTL . ERROR } , ` +
143+ `stale-while-revalidate=${ DURATIONS . ONE_DAY } ` ,
86144 ) ;
87145} ;
88146
89- export { resolveCacheSeconds , setCacheHeaders , setErrorCacheHeaders } ;
147+ export {
148+ resolveCacheSeconds ,
149+ setCacheHeaders ,
150+ setErrorCacheHeaders ,
151+ DURATIONS ,
152+ CACHE_TTL ,
153+ } ;
0 commit comments