import express from 'express'; import { resolve } from 'node:path'; export function createApp({ distDir = resolve(process.cwd(), 'dist') } = {}) { const app = express(); app.disable('x-powered-by'); app.use((_request, response, next) => { response.set({ 'Cross-Origin-Opener-Policy': 'same-origin', 'Cross-Origin-Embedder-Policy': 'require-corp', 'Cross-Origin-Resource-Policy': 'same-origin', }); next(); }); app.use('/assets', express.static(resolve(distDir, 'assets'), { immutable: true, maxAge: '1y', setHeaders: response => response.setHeader('Cache-Control', 'public, max-age=31536000, immutable'), })); app.use(express.static(distDir, { index: false })); app.use((_request, response) => response.sendFile(resolve(distDir, 'index.html'))); return { app }; }