@directus/api
Version:
Directus is a real-time API and App dashboard for managing SQL database content
36 lines (34 loc) • 1.22 kB
JavaScript
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 };