mirror of
https://github.com/langgenius/dify.git
synced 2026-06-17 14:51:10 +08:00
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
30 lines
1001 B
TypeScript
30 lines
1001 B
TypeScript
import { newError } from '@/errors/base'
|
|
import { ErrorCode } from '@/errors/codes'
|
|
import { Flags } from '@/framework/flags'
|
|
|
|
export const HTTP_RETRY_DEFAULT = 3
|
|
|
|
export const httpRetryFlag = Flags.integer({
|
|
description: 'HTTP retry attempts for GET/PUT/DELETE on transient errors. 0 disables. Overrides DIFYCTL_HTTP_RETRY.',
|
|
helpGroup: 'GLOBAL',
|
|
})
|
|
|
|
export type ResolveRetryAttemptsOpts = {
|
|
flag: number | undefined
|
|
env: (k: string) => string | undefined
|
|
}
|
|
|
|
export function resolveRetryAttempts(opts: ResolveRetryAttemptsOpts): number {
|
|
if (opts.flag !== undefined)
|
|
return opts.flag
|
|
const raw = opts.env('DIFYCTL_HTTP_RETRY')
|
|
if (raw === undefined || raw === '')
|
|
return HTTP_RETRY_DEFAULT
|
|
if (!/^-?\d+$/.test(raw))
|
|
throw newError(ErrorCode.UsageInvalidFlag, `DIFYCTL_HTTP_RETRY: ${JSON.stringify(raw)} is not a non-negative integer`)
|
|
const n = Number(raw)
|
|
if (n < 0)
|
|
throw newError(ErrorCode.UsageInvalidFlag, `DIFYCTL_HTTP_RETRY: ${n} is negative`)
|
|
return n
|
|
}
|