2024-07-13 14:15:50 +02:00

41 lines
1.3 KiB
TypeScript

import { AnalyticsSDK } from "src/shared/analytics/sdk";
import { MeilisearchSDK } from "src/shared/meilisearch/sdk";
import { ContextCache } from "src/cache/contextCache";
import { DataCache } from "src/cache/dataCache";
import { PageCache } from "src/cache/pageCache";
import { TokenCache } from "src/cache/tokenCache";
import { PayloadSDK } from "src/shared/payload/sdk";
export const meilisearch = new MeilisearchSDK(
import.meta.env.MEILISEARCH_URL,
import.meta.env.MEILISEARCH_MASTER_KEY
);
export const analytics = new AnalyticsSDK(import.meta.env.ANALYTICS_URL);
const tokenCache = new TokenCache();
export const payload = new PayloadSDK(
import.meta.env.PAYLOAD_API_URL,
import.meta.env.PAYLOAD_USER,
import.meta.env.PAYLOAD_PASSWORD
);
payload.addTokenCache(tokenCache);
const uncachedPayload = new PayloadSDK(
import.meta.env.PAYLOAD_API_URL,
import.meta.env.PAYLOAD_USER,
import.meta.env.PAYLOAD_PASSWORD
);
uncachedPayload.addTokenCache(tokenCache);
export const pageCache = new PageCache(uncachedPayload);
// Loading context cache first so that the server can still serve responses while precaching.
export const contextCache = new ContextCache(payload);
await contextCache.init();
export const dataCache = new DataCache(payload, uncachedPayload, (urls) =>
pageCache.invalidate(urls)
);
payload.addDataCache(dataCache);