(request: Request, filePath: string, extraHeaders?: ResponseInit['headers'])
| 61 | } |
| 62 | |
| 63 | export async function serveFileWithTs(request: Request, filePath: string, extraHeaders?: ResponseInit['headers']) { |
| 64 | const response = await serveFile(request, filePath); |
| 65 | |
| 66 | if (response.status !== 200) { |
| 67 | return response; |
| 68 | } |
| 69 | |
| 70 | const tsCode = await response.text(); |
| 71 | const jsCode = await transpileTs(tsCode, new URL('file:///src.ts')); |
| 72 | const { headers } = response; |
| 73 | headers.set('content-type', 'application/javascript; charset=utf-8'); |
| 74 | headers.delete('content-length'); |
| 75 | |
| 76 | return new Response(jsCode, { |
| 77 | status: response.status, |
| 78 | statusText: response.statusText, |
| 79 | headers, |
| 80 | ...(extraHeaders || {}), |
| 81 | }); |
| 82 | } |
| 83 | |
| 84 | function transpileSass(content: string) { |
| 85 | const compiler = sass(content); |
no test coverage detected