/**
 * 该文件用来做两件事
 *
 * 1. 在window对象上注入全局变量 _ANTOM_SDK_INTEGRATION_TYPE,标记商户是NPM集成还是CDN集成
 * 2. 埋点上报integrationType
 *
 * ***/

import { LogConfig, Logger } from "./logger";
var logger = new Logger(LogConfig, true);

/*** 扩展 Window 接口，添加 _ANTOM_SDK_INTEGRATION_TYPE 属性*/

/*** SDK 集成类型枚举*/

/*** 往window对象上注入全局变量 _ANTOM_SDK_INTEGRATION_TYPE */
export function injectAntomSDKIntegrationType(integrationType) {
  // 参数验证
  var validTypes = ['CDN', 'NPM'];
  if (!validTypes.includes(integrationType)) {
    return;
  }

  // 检查是否在浏览器环境中
  if (typeof window === 'undefined') {
    return;
  }

  // 由于使用npm集成已接入热更新的产品 ,会加载cdn资源，导致二次注入type为CDN
  // 如果已经注入过,不进行覆盖
  if (validTypes.includes(window._ANTOM_WEB_SDK_INTEGRATION_TYPE)) return;

  // 注入全局变量
  window._ANTOM_WEB_SDK_INTEGRATION_TYPE = integrationType;

  // 埋点上报integrationType
  logger.setMedta({
    integrationType: integrationType
  });
}

/**
 * 获取全局变量 _ANTOM_SDK_INTEGRATION_TYPE
 */
export function getAntomSDKIntegrationType() {
  var _window;
  return (_window = window) === null || _window === void 0 ? void 0 : _window._ANTOM_WEB_SDK_INTEGRATION_TYPE;
}