feat: async task pipeline for media and llm workflows

这个提交包含在:
cryptocommuniums-afk
2026-03-15 00:12:26 +08:00
父节点 1cc863e60e
当前提交 20e183d2da
修改 36 个文件,包含 1961 行新增339 行删除

22
server/publicUrl.ts 普通文件
查看文件

@@ -0,0 +1,22 @@
import { ENV } from "./_core/env";
function hasProtocol(value: string) {
return /^[a-z][a-z0-9+.-]*:\/\//i.test(value);
}
export function toPublicUrl(pathOrUrl: string) {
const value = pathOrUrl.trim();
if (!value) {
throw new Error("Public URL value is empty");
}
if (hasProtocol(value)) {
return value;
}
if (!ENV.appPublicBaseUrl) {
throw new Error("APP_PUBLIC_BASE_URL is required for externally accessible asset URLs");
}
return new URL(value.startsWith("/") ? value : `/${value}`, ENV.appPublicBaseUrl).toString();
}