39 lines
961 B
JavaScript
39 lines
961 B
JavaScript
import { unlinkSync } from 'node:fs';
|
|
const transpiler = Bun.Transpiler({
|
|
loader: 'cjs',
|
|
});
|
|
|
|
export default {
|
|
port: Bun.env.BUN_PORT || Bun.env.APP_PORT || 3000,
|
|
async fetch(req) {
|
|
const magicKey = Math.random().toString(36).substring(2, 10);
|
|
const url = new URL(req.url);
|
|
if (url.pathname == '/main.js') {
|
|
const path = `./.cache/`;
|
|
const filename = `${magicKey}.js`;
|
|
const file = Bun.file(`${path}/${filename}`);
|
|
const result = await Bun.build({
|
|
entrypoints: ['./src/main.js'],
|
|
outdir: path,
|
|
target: 'browser',
|
|
splitting: true,
|
|
naming: `[dir]/${filename}`,
|
|
});
|
|
|
|
console.log(result);
|
|
|
|
const resp = new Response(file, {
|
|
headers: { 'Cache-Control': 'no-cache' },
|
|
});
|
|
|
|
setTimeout(() => {
|
|
unlinkSync(`${path}/${filename}`);
|
|
}, 400);
|
|
|
|
return resp;
|
|
}
|
|
if (url.pathname == '/') return new Response(Bun.file('./index.html'));
|
|
return new Response('ERR 404: Not Found', { status: 404 });
|
|
},
|
|
};
|