diff --git a/src/server/publisher-server.ts b/src/server/publisher-server.ts index e924d35..caae926 100644 --- a/src/server/publisher-server.ts +++ b/src/server/publisher-server.ts @@ -27,7 +27,7 @@ function requestAcceptsTextHtml(req: Request) { type AssetInit = { status?: number, headers?: Record, - cache?: 'extended' | 'never' | null, + cache?: 'extended' | 'never' | null | string, }; export class PublisherServer { @@ -238,6 +238,8 @@ export class PublisherServer { case 'never': cacheControlValue = 'no-store'; break; + default: + cacheControlValue = init.cache; } headers['Cache-Control'] = cacheControlValue; } @@ -264,7 +266,7 @@ export class PublisherServer { }); } - async serveRequest(request: Request): Promise { + async serveRequest(request: Request, cache: string): Promise { // Only handle GET and HEAD if (request.method !== 'GET' && request.method !== 'HEAD') { @@ -274,10 +276,12 @@ export class PublisherServer { const url = new URL(request.url); const pathname = url.pathname; + const doCache = cache || (this.testExtendedCache(pathname) ? 'extended' : null); + const asset = this.getMatchingAsset(pathname); if (asset != null) { return this.serveAsset(request, asset, { - cache: this.testExtendedCache(pathname) ? 'extended' : null, + cache: doCache, }); }