diff --git a/spec/headers_test.js b/spec/headers_test.js index efe76447e82cff70e624d96b4e55513a6c397fbb..44eb2ed1538ac76ed32d50ff6b12faac68dde334 100644 --- a/spec/headers_test.js +++ b/spec/headers_test.js @@ -58,6 +58,6 @@ describe('Responses contain custom headers', () => { it('javascript file contains dependencies', async () => { const response = await request(app).get('/index.html.js') expect(response.statusCode).toBe(200) - expect(response.headers.dependencies).toEqual('example.js,main.css') + expect(response.headers.dependencies).toEqual('main.css') }) }) diff --git a/src/createApp.js b/src/createApp.js index 44066101ef8fad489dbbc8edabb7b8cafd27042a..0bd24a8aaba6e024c9fcf85ce0c30d8b116a57e2 100644 --- a/src/createApp.js +++ b/src/createApp.js @@ -18,7 +18,7 @@ import promBundle from 'express-prom-bundle' import swaggerUi from 'swagger-ui-express' import yaml from 'js-yaml' import fs from 'fs' -import { getDependencies, getOxManifests, getVersion } from './manifests.js' +import { getCSSDependenciesFor, getDependencies, getOxManifests, getVersion } from './manifests.js' import { fileCache } from './files.js' const ignorePaths = ['/ready', '/healthy'] @@ -93,8 +93,7 @@ export function createApp () { app.use(async (req, res, next) => { const { 'content-type': contentType, content } = fileCache.get(req.path) if (content) { - const allDependencies = await getDependencies() - const dependencies = allDependencies[req.path.substr(1)] || [] + const dependencies = await getCSSDependenciesFor(req.path.substr(1)) return res .setHeader('content-type', contentType) .setHeader('dependencies', dependencies.join(',')) @@ -107,8 +106,7 @@ export function createApp () { try { const { 'content-type': contentType, content } = await fileCache.fetchAndStore(req.path) if (content) { - const allDependencies = await getDependencies() - const dependencies = allDependencies[req.path.substr(1)] || [] + const dependencies = await getCSSDependenciesFor(req.path.substr(1)) return res .setHeader('content-type', contentType) .setHeader('dependencies', dependencies.join(',')) diff --git a/src/manifests.js b/src/manifests.js index 3660508715bb08a0d9f8321e90a5fc1b205e301a..3a9fda7ae8edd243d8bfbc27459b9f2fd410cb40 100644 --- a/src/manifests.js +++ b/src/manifests.js @@ -106,6 +106,12 @@ export const getDependencies = (() => { } })() +export async function getCSSDependenciesFor (file) { + const allDependencies = await getDependencies() + const dependencies = allDependencies[file] || [] + return dependencies.filter(dep => /\.css/i.test(dep)) +} + export const getVersion = (() => { let prevViteManifest let version