library-picturebook-activity/oss-direct-upload-demo/frontend/env.ts

60 lines
1.5 KiB
TypeScript
Raw Permalink Normal View History

/**
*
*
* OSS dev/test/prod
*
*/
/**
* OSS
*
*
* Vite 使 import.meta.env.MODE development / test / production
*/
const OSS_ENV_PREFIX_MAP: Record<string, string> = {
development: "dev",
test: "test",
production: "prod",
};
/**
* Vite
*/
export function getViteEnv(): string {
return import.meta.env.MODE || "development";
}
/**
* OSS
*
* @returns OSS dev/test/prod
*/
export function getOssEnvPrefix(): string {
const env = getViteEnv();
return OSS_ENV_PREFIX_MAP[env] || "dev";
}
/**
* OSS
*
* @param bizDir avatar, course/cover
* @returns dev/avatar, test/course/cover
*
* @example
* buildOssDirPath("avatar") // 开发环境 → "dev/avatar"
* buildOssDirPath("course/cover") // 测试环境 → "test/course/cover"
* buildOssDirPath() // 生产环境 → "prod"
*/
export function buildOssDirPath(bizDir?: string): string {
const envPrefix = getOssEnvPrefix();
if (!bizDir) {
return envPrefix;
}
// 移除 bizDir 开头可能存在的环境前缀,避免重复
const cleanBizDir = bizDir.replace(/^(dev|test|prod)\//, "");
return `${envPrefix}/${cleanBizDir}`;
}