backstory/frontend/craco.config.js

57 lines
1.7 KiB
JavaScript

module.exports = {
devServer: {
server: {
type: 'https',
// options: {
// cert: '/path/to/cert.pem',
// key: '/path/to/key.pem',
// }
},
setupMiddlewares: (middlewares, devServer) => {
const { createProxyMiddleware } = require('http-proxy-middleware');
if (!devServer) {
throw new Error('webpack-dev-server is not defined');
}
devServer.app.use('/api', createProxyMiddleware({
target: 'https://backstory:8911',
changeOrigin: true,
secure: false,
buffer: false,
proxyTimeout: 3600000,
onProxyRes: function(proxyRes, req, res) {
proxyRes.headers['cache-control'] = 'no-cache';
if (req.url.includes('/docs') ||
req.url.includes('/redoc') ||
req.url.includes('/openapi.json')) {
return; // Let original headers pass through
}
// Remove any header that might cause buffering
proxyRes.headers['transfer-encoding'] = 'chunked';
delete proxyRes.headers['content-length'];
// Set proper streaming headers
proxyRes.headers['cache-control'] = 'no-cache';
proxyRes.headers['content-type'] = 'text/event-stream';
proxyRes.headers['connection'] = 'keep-alive';
},
}));
return middlewares;
}
},
webpack: {
configure: (webpackConfig) => {
// Add .ts and .tsx to resolve.extensions
webpackConfig.resolve.extensions = [
...webpackConfig.resolve.extensions,
'.ts',
'.tsx',
];
return webpackConfig;
},
},
};