From ec77b0a203a51e704576bbabe09ff438e813e479 Mon Sep 17 00:00:00 2001 From: Clayton Gulick Date: Tue, 19 Jul 2022 10:51:32 -0500 Subject: [PATCH] Enable extensions cache (#14499) * enable caching for extension assets with ASSETS_CACHE_TTL setting * simplify implementation --- api/src/controllers/extensions.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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); })