directus
1import { useEnv } from '@directus/env';
2import type Keyv from 'keyv';
3import type { MutationOptions } from '../types/items.js';
4
5/**
6* Check whether cache should be cleared
7*
8* @param cache Cache instance
9* @param opts Mutation options
10* @param collection Collection name to check if cache purging should be ignored
11*/
12export function shouldClearCache(
13cache: Keyv<any> | null,
14opts?: MutationOptions,
15collection?: string,
16): cache is Keyv<any> {
17const env = useEnv();
18
19if (env['CACHE_AUTO_PURGE']) {
20if (collection && (env['CACHE_AUTO_PURGE_IGNORE_LIST'] as string[]).includes(collection)) {
21return false;
22}
23
24if (cache && opts?.autoPurgeCache !== false) {
25return true;
26}
27}
28
29return false;
30}
31