rowboat/apps/chat_widget/app/api/bootstrap.js/route.ts
2025-03-09 15:13:19 +05:30

35 lines
1,019 B
TypeScript

import { promises as fs } from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
export const dynamic = 'force-dynamic'
const __dirname = path.dirname(fileURLToPath(import.meta.url));
// Read the file once when the module loads
const jsFileContents = fs.readFile(
path.join(__dirname, 'bootstrap.js'),
'utf-8'
);
export async function GET() {
try {
// Reuse the cached content
const template = await jsFileContents;
// Replace placeholder values with actual URLs
const contents = template
.replace('__CHAT_WIDGET_HOST__', process.env.CHAT_WIDGET_HOST || '')
.replace('__ROWBOAT_HOST__', process.env.ROWBOAT_HOST || '');
return new Response(contents, {
headers: {
'Content-Type': 'application/javascript',
'Cache-Control': 'no-cache, no-store, must-revalidate',
},
});
} catch (error) {
console.error('Error serving bootstrap.js:', error);
return new Response('Error loading script', { status: 500 });
}
}