Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 4x 4x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 24x 4x 24x 24x 1x | import {
fetchCacheable,
addTrafficMonitoringSearchParamsForProCDN,
createFallbackErrorResponse,
getAgentScriptEndpoint,
createResponseWithMaxAge,
} from '../utils'
import { getCdnUrl, WorkerEnv } from '../env'
function copySearchParams(oldURL: URL, newURL: URL): void {
newURL.search = new URLSearchParams(oldURL.search).toString()
}
function makeDownloadScriptRequest(request: Request, env: WorkerEnv): Promise<Response> {
const cdnUrl = getCdnUrl(env)!
const oldURL = new URL(request.url)
const agentScriptEndpoint = getAgentScriptEndpoint(cdnUrl, oldURL.searchParams)
const newURL = new URL(agentScriptEndpoint)
copySearchParams(oldURL, newURL)
addTrafficMonitoringSearchParamsForProCDN(newURL)
const headers = new Headers(request.headers)
headers.delete('Cookie')
console.log(`Downloading script from cdnEndpoint ${newURL.toString()}...`)
const newRequest = new Request(newURL.toString(), new Request(request, { headers }))
const workerCacheTtl = 60
const maxMaxAge = 60 * 60
const maxSMaxAge = 60
return fetchCacheable(newRequest, workerCacheTtl).then((res) => createResponseWithMaxAge(res, maxMaxAge, maxSMaxAge))
}
export async function handleDownloadScript(request: Request, env: WorkerEnv): Promise<Response> {
try {
return await makeDownloadScriptRequest(request, env)
} catch (e) {
return createFallbackErrorResponse(e)
}
}
|