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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | 15x 60x 422x 45x 359x 15x 15x 15x 15x 83x 83x 15x 15x 15x 88x 88x 15x 15x 15x 88x 173x 15x 215x 215x 5x 210x 210x 9x 9x 1x 8x 206x 206x 4x 202x 9x 9x 193x | import { config } from './config'
export type WorkerEnv = {
AGENT_SCRIPT_DOWNLOAD_PATH: string | null
GET_RESULT_PATH: string | null
PROXY_SECRET: string | null
FPJS_INGRESS_BASE_HOST: string | null
INTEGRATION_PATH_DEPTH: number | string | null
}
export const Defaults = {
AGENT_SCRIPT_DOWNLOAD_PATH: null,
GET_RESULT_PATH: null,
PROXY_SECRET: null,
FPJS_INGRESS_BASE_HOST: config.ingressApi,
INTEGRATION_PATH_DEPTH: 1,
} satisfies WorkerEnv
function getVarOrDefault<K extends keyof WorkerEnv>(
variable: K,
defaults: WorkerEnv
): (env: WorkerEnv) => WorkerEnv[K] {
return function (env: WorkerEnv): WorkerEnv[K] {
return env[variable] || defaults[variable]
}
}
function isVarSet(variable: keyof WorkerEnv): (env: WorkerEnv) => boolean {
return function (env: WorkerEnv): boolean {
return !!env[variable]
}
}
export const getIngressBaseHost = getVarOrDefault('FPJS_INGRESS_BASE_HOST', Defaults)
export const agentScriptDownloadPathVarName = 'AGENT_SCRIPT_DOWNLOAD_PATH'
const getAgentPathVar = getVarOrDefault(agentScriptDownloadPathVarName, Defaults)
export const isScriptDownloadPathSet = isVarSet(agentScriptDownloadPathVarName)
export function getScriptDownloadPath(env: WorkerEnv): string {
const agentPathVar = getAgentPathVar(env)
return `/${agentPathVar}`
}
export const getResultPathVarName = 'GET_RESULT_PATH'
const getGetResultPathVar = getVarOrDefault(getResultPathVarName, Defaults)
export const isGetResultPathSet = isVarSet(getResultPathVarName)
export function getGetResultPath(env: WorkerEnv): string {
const getResultPathVar = getGetResultPathVar(env)
return `/${getResultPathVar}`
}
export const proxySecretVarName = 'PROXY_SECRET'
const getProxySecretVar = getVarOrDefault(proxySecretVarName, Defaults)
export const isProxySecretSet = isVarSet(proxySecretVarName)
export function getProxySecret(env: WorkerEnv): string | null {
return getProxySecretVar(env)
}
export function getStatusPagePath(): string {
return `/status`
}
export const integrationPathDepthVarName = 'INTEGRATION_PATH_DEPTH'
function normalizeIntegrationPathDepth(env: WorkerEnv): number | null {
const integrationPathDepth = env[integrationPathDepthVarName]
if (integrationPathDepth === null || integrationPathDepth === undefined || integrationPathDepth === '') {
return null
}
return typeof integrationPathDepth === 'string' ? Number(integrationPathDepth) : integrationPathDepth
}
function isNonNegativeInteger(value: number): boolean {
return Number.isInteger(value) && value >= 0 && !Object.is(value, -0)
}
export function envHasValidIntegrationPathDepth(env: WorkerEnv) {
const integrationPathDepth = normalizeIntegrationPathDepth(env)
if (integrationPathDepth == null) {
return true
}
return isNonNegativeInteger(integrationPathDepth)
}
export function getIntegrationPathDepth(env: WorkerEnv): number {
const integrationPathDepth = normalizeIntegrationPathDepth(env)
if (integrationPathDepth === null) {
return Defaults.INTEGRATION_PATH_DEPTH
}
if (!isNonNegativeInteger(integrationPathDepth)) {
console.warn(
`INTEGRATION_PATH_DEPTH must be an integer greater than or equal to 0, defaulting to ${Defaults.INTEGRATION_PATH_DEPTH}`
)
return Defaults.INTEGRATION_PATH_DEPTH
}
return integrationPathDepth
}
|