| | import { languageKeys } from '@/languages/lib/languages-server' |
| |
|
| | import { makeLanguageSurrogateKey } from '@/frame/middleware/set-fastly-surrogate-key' |
| | import purgeEdgeCache from '@/workflows/purge-edge-cache' |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | const DELAY_BETWEEN_LANGUAGES = 10 * 1000 |
| |
|
| | const sleep = (ms: number): Promise<void> => new Promise((resolve) => setTimeout(resolve, ms)) |
| |
|
| | |
| | await purgeEdgeCache(makeLanguageSurrogateKey()) |
| |
|
| | const languages = process.env.LANGUAGES |
| | ? languagesFromString(process.env.LANGUAGES) |
| | : |
| | |
| | |
| | languageKeys.sort((a) => (a === 'en' ? -1 : 1)) |
| |
|
| | for (const language of languages) { |
| | console.log( |
| | `Sleeping ${DELAY_BETWEEN_LANGUAGES / 1000} seconds before purging for '${language}'...`, |
| | ) |
| | await sleep(DELAY_BETWEEN_LANGUAGES) |
| | await purgeEdgeCache(makeLanguageSurrogateKey(language)) |
| | } |
| |
|
| | function languagesFromString(str: string): string[] { |
| | const parsedLanguages = str |
| | .split(/,/) |
| | .map((x) => x.trim()) |
| | .filter(Boolean) |
| | if (!parsedLanguages.every((lang) => languageKeys.includes(lang))) { |
| | throw new Error( |
| | `Unrecognized language code (${parsedLanguages.find((lang) => !languageKeys.includes(lang))})`, |
| | ) |
| | } |
| | return parsedLanguages |
| | } |
| |
|