quetre/utils/cacheKeys.js
zyachel 175878dba9 feat: implement caching of api responses
should help a bit in not getting rate-limited
2023-02-11 22:21:28 +05:30

35 lines
1 KiB
JavaScript

////////////////////////////////////////////////////////
// LOCAL HELPERS
////////////////////////////////////////////////////////
const getLang = urlObj => urlObj.searchParams.get('lang') || 'en';
const formatSlug = (slug, charToRemove) =>
slug.replace(charToRemove, '').toLowerCase();
////////////////////////////////////////////////////////
// EXPORTS
////////////////////////////////////////////////////////
export const searchKey = urlObj => {
const slug = formatSlug(urlObj.search, '?');
return `search:${slug}`;
};
export const answersKey = urlObj => {
const slug = formatSlug(urlObj.pathname, '/');
const lang = getLang(urlObj);
return `answers:${slug}&lang=${lang}`;
};
export const topicKey = urlObj => {
const slug = formatSlug(urlObj.pathname, '/topic/');
const lang = getLang(urlObj);
return `topic:${slug}&lang=${lang}`;
};
export const profileKey = urlObj => {
const slug = formatSlug(urlObj.pathname, '/profile/');
const lang = getLang(urlObj);
return `profile:${slug}&lang=${lang}`;
};