rowboat/apps/experimental/chat_widget/app/api/bootstrap.js/route.ts

28 lines
878 B
TypeScript
Raw Normal View History

2025-03-09 15:13:19 +05:30
export const dynamic = 'force-dynamic'
2025-03-10 14:31:23 +05:30
// Fetch template once when module loads
const templatePromise = fetch(process.env.CHAT_WIDGET_HOST + '/bootstrap.template.js')
.then(res => res.text());
2025-03-09 15:13:19 +05:30
export async function GET() {
try {
// Reuse the cached content
2025-03-10 14:31:23 +05:30
const template = await templatePromise;
2025-03-09 15:13:19 +05:30
// 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 });
}
}