UNPKG

@directus/api

Version:

Directus is a real-time API and App dashboard for managing SQL database content

36 lines (34 loc) 1.22 kB
import { useLogger } from "../../../logger/index.js"; import { clearSystemCache, getCache } from "../../../cache.js"; import { getEntitlementManager } from "../../../license/entitlements/manager.js"; import "../../../license/index.js"; import { useEnv } from "@directus/env"; //#region src/cli/commands/cache/clear.ts async function cacheClear({ system, data }) { const env = useEnv(); const logger = useLogger(); if (env["CACHE_STORE"] !== "redis") { process.stdout.write("CACHE_STORE is not set to \"redis\". In-memory caches are local to each running process and cannot be cleared externally.\n"); process.exit(0); } else { const clearAll = !system && !data; try { if (clearAll || system) { await clearSystemCache({ forced: true }); await getEntitlementManager().clearCache(); } if (clearAll || data) { const { cache } = getCache(); await cache?.clear(); } const target = clearAll ? "all caches" : [system && "system cache", data && "data cache"].filter(Boolean).join(" and "); process.stdout.write(`Cleared ${target} successfully\n`); process.exit(0); } catch (err) { logger.error(err); process.exit(1); } } } //#endregion export { cacheClear as default };