import lscWindowConfig from "../../utils/lscConfig";
import RequireJS from "../../utils/RequireJS";

export function getPublicPrefix() {
  const { publicPath } = lscWindowConfig;

  let prefix = window.location.origin;
  if (/^http/.test(publicPath)) {
    prefix = publicPath;
  } else {
    prefix += publicPath;
  }
  return prefix;
}

let promise;
export async function getVisionConfig(componentName: string) {
  let prefix = getPublicPrefix();

  const visionPath = new URL(prefix + "vision.config.json");

  if (!promise) {
    promise = RequireJS.load(visionPath.href).then(modules => {
      return modules[componentName];
    });
  }

  return await promise;
}
