dify/cli/src/commands/_shared/global-flags.ts
Yunlu Wen c0ee821d45
refactor: use absolute path for inter dir importing (#36822)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-01 01:32:16 +00:00

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
}