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 103 104 105 106 107 108 109 110 | 16x 64x 435x 48x 371x 16x 170x 170x 1x 169x 16x 16x 16x 86x 86x 16x 16x 16x 91x 91x 16x 16x 16x 88x 179x 16x 221x 221x 5x 216x 216x 9x 9x 1x 8x 212x 212x 4x 208x 9x 9x 199x | 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 Boolean(env[variable])
}
}
const getIngressBaseHostVar = getVarOrDefault('FPJS_INGRESS_BASE_HOST', Defaults)
export function getIngressBaseHost(env: WorkerEnv): string {
const ingressBaseHost = getIngressBaseHostVar(env)
if (ingressBaseHost === null) {
throw new Error('FPJS_INGRESS_BASE_HOST is not set and no default is available')
}
return ingressBaseHost
}
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
}
|