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 423x 48x 359x 16x 164x 164x 1x 163x 16x 16x 16x 83x 83x 16x 16x 16x 88x 88x 16x 16x 16x 88x 173x 16x 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 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
}
|