diff --git a/api/src/controllers/extensions.ts b/api/src/controllers/extensions.ts index 74a92f860c..86ac63f1b0 100644 --- a/api/src/controllers/extensions.ts +++ b/api/src/controllers/extensions.ts @@ -5,6 +5,9 @@ import { getExtensionManager } from '../extensions'; import { respond } from '../middleware/respond'; import { depluralize, isAppExtension } from '@directus/shared/utils'; import { Plural } from '@directus/shared/types'; +import ms from 'ms'; +import env from '../env'; +import { getCacheControlHeader } from '../utils/get-cache-headers'; const router = Router(); @@ -47,7 +50,11 @@ router.get( } res.setHeader('Content-Type', 'application/javascript; charset=UTF-8'); - res.setHeader('Cache-Control', 'no-store'); + if (env.EXTENSIONS_CACHE_TTL) { + res.setHeader('Cache-Control', getCacheControlHeader(req, ms(env.EXTENSIONS_CACHE_TTL as string))); + } else { + res.setHeader('Cache-Control', 'no-store'); + } res.setHeader('Vary', 'Origin, Cache-Control'); res.end(extensionSource); })