Spaces:
Running
Running
| 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 }; | |
| } | |