26 lines
848 B
TypeScript
26 lines
848 B
TypeScript
import type { AgreementType } from './agreement.types'
|
|
|
|
function parseEnvId(value: string | undefined): number | undefined {
|
|
if (value === undefined || value === '') return undefined
|
|
const n = Number(value)
|
|
return Number.isFinite(n) && n >= 0 ? n : undefined
|
|
}
|
|
|
|
/** 与后端协议主键对应,可在 .env 中配置 */
|
|
export function resolveAgreementId(type: AgreementType): number {
|
|
const fromEnv =
|
|
type === 'service'
|
|
? parseEnvId(import.meta.env.VITE_AGREEMENT_ID_SERVICE)
|
|
: parseEnvId(import.meta.env.VITE_AGREEMENT_ID_PRIVACY)
|
|
|
|
if (fromEnv !== undefined) return fromEnv
|
|
|
|
return 0
|
|
}
|
|
|
|
export function parseAgreementIdFromQuery(raw: unknown): number | undefined {
|
|
if (raw === undefined || raw === null || raw === '') return undefined
|
|
const n = Number(raw)
|
|
return Number.isFinite(n) && n >= 0 ? n : undefined
|
|
}
|