(env: Env, packageName: string, version: string, filename: string)
| 321 | } |
| 322 | |
| 323 | async function serveRawFile(env: Env, packageName: string, version: string, filename: string): Promise<Response> { |
| 324 | let rawResponse = await fetch(new URL(`/file/${packageName}@${version}${filename}`, env.FILES_ORIGIN)); |
| 325 | if (!rawResponse.ok) { |
| 326 | return jsonError({ |
| 327 | code: "RAW_FILE_NOT_FOUND", |
| 328 | message: await rawResponse.text(), |
| 329 | status: rawResponse.status, |
| 330 | }); |
| 331 | } |
| 332 | |
| 333 | let headers = new Headers(rawResponse.headers); |
| 334 | if (isTypeDeclarationPath(filename)) { |
| 335 | headers.set("Content-Type", "application/typescript; charset=utf-8"); |
| 336 | } else if (isCssPath(filename)) { |
| 337 | headers.set("Content-Type", "text/css; charset=utf-8"); |
| 338 | } |
| 339 | for (let [name, value] of Object.entries(corsHeaders())) { |
| 340 | headers.set(name, value); |
| 341 | } |
| 342 | |
| 343 | return new Response(await rawResponse.arrayBuffer(), { |
| 344 | status: rawResponse.status, |
| 345 | statusText: rawResponse.statusText, |
| 346 | headers, |
| 347 | }); |
| 348 | } |
| 349 | |
| 350 | async function serveCssModule(env: Env, packageName: string, version: string, filename: string): Promise<Response> { |
| 351 | let response = await serveRawFile(env, packageName, version, filename); |
no test coverage detected