/**
 * 将场景配置里的 boardUrl 转为 iframe 可用的绝对地址。
 * - 已是 http(s):// 开头：原样返回（兼容旧配置）。
 * - 否则视为 DataEase 前端路由片段（如 /de-link/xxx），拼为：
 *   {dataEasePublicBase}/#/de-link/xxx
 */
export function resolveBoardUrl(
  dataEasePublicBase: string | undefined,
  boardUrl: string
): string {
  const raw = (boardUrl ?? "").trim();
  if (!raw) {
    return raw;
  }
  if (/^https?:\/\//i.test(raw)) {
    return raw;
  }
  const base = (dataEasePublicBase ?? "").trim().replace(/\/$/, "");
  if (!base) {
    throw new Error(
      "app.config.json 中 dataEasePublicBase 未配置，无法解析相对 boardUrl"
    );
  }
  const path = raw.startsWith("/") ? raw : `/${raw}`;
  return `${base}/#${path}`;
}
