use crate::contract::CONTRACT_FILE_ENV_VAR;
pub(crate) const CHECK_BUILD_DIR_ENV_VAR: &str = "__VORMA_CHECK_BUILD_DIR";
const DEV_PROCESS_ENV_VAR: &str = "__VORMA_IS_DEV";
pub(crate) const READINESS_PATH: &str = "/.vorma/healthz";
pub fn is_dev() -> bool {
std::env::var(DEV_PROCESS_ENV_VAR).is_ok_and(|value| value == "1")
}
pub fn is_build() -> bool {
std::env::var_os(CONTRACT_FILE_ENV_VAR).is_some()
|| std::env::var_os(CHECK_BUILD_DIR_ENV_VAR).is_some()
}
const VERCEL_SKEW_PROTECTION_ENABLED_ENV_VAR: &str = "VERCEL_SKEW_PROTECTION_ENABLED";
const VERCEL_DEPLOYMENT_ID_ENV_VAR: &str = "VERCEL_DEPLOYMENT_ID";
pub(crate) fn read_vercel_deployment_id() -> Result<Option<String>, String> {
let Some(enabled) = std::env::var_os(VERCEL_SKEW_PROTECTION_ENABLED_ENV_VAR) else {
return Ok(None);
};
let enabled = match enabled.to_str() {
Some("true" | "yes" | "on" | "1" | "y") => true,
Some("false" | "no" | "off" | "0" | "n") => false,
_ => {
return Err(format!(
"{VERCEL_SKEW_PROTECTION_ENABLED_ENV_VAR} must be one of true, yes, on, 1, y, false, no, off, 0, or n"
));
}
};
if !enabled {
return Ok(None);
}
Ok(std::env::var(VERCEL_DEPLOYMENT_ID_ENV_VAR).ok())
}