Home Reference Source

src/global.js

/* @flow */

import {
  ENV,
  PROTOCOL,
  COMPONENTS,
  PLATFORM,
  type FundingEligibilityType,
} from "@paypal/sdk-constants/src";
import { isDevice } from "@krakenjs/belter/src";

export function getSDKHost(): string {
  return __SDK_HOST__;
}

export function getProtocol(): $Values<typeof PROTOCOL> {
  return typeof __PROTOCOL__ !== "undefined" ? __PROTOCOL__ : PROTOCOL.HTTPS;
}

export function getHost(): string {
  return __HOST__;
}

export function getHostName(): string {
  return __HOSTNAME__;
}

export function getPort(): number {
  return __PORT__;
}

export function getPath(): string {
  return __PATH__;
}

export function getEnv(): $Values<typeof ENV> {
  return __ENV__;
}

export function getPayPalDomain(): string {
  return __PAYPAL_DOMAIN__;
}

export function getPayPalAPIDomain(): string {
  return __PAYPAL_API_DOMAIN__;
}

export function getDefaultServiceStageHost(): ?string {
  if (
    typeof __SERVICE_STAGE_HOST__ !== "undefined" &&
    __SERVICE_STAGE_HOST__ !== null
  ) {
    return __SERVICE_STAGE_HOST__;
  }
}

export function getDefaultStageHost(): ?string {
  if (typeof __STAGE_HOST__ !== "undefined" && __STAGE_HOST__ !== null) {
    return __STAGE_HOST__;
  }
}

export function getDefaultAPIStageHost(): ?string {
  const serviceStageHost = getDefaultServiceStageHost();
  const stageHost = getDefaultStageHost();

  if (serviceStageHost) {
    return serviceStageHost;
  } else if (stageHost) {
    return stageHost;
  }
}

export function getStageHost(): ?string {
  return getDefaultStageHost();
}

export function getAPIStageHost(): ?string {
  const defaultAPIStageHost = getDefaultAPIStageHost();

  if (defaultAPIStageHost) {
    return defaultAPIStageHost.replace("www.", "api.");
  }
}

export function getVersion(): string {
  return __VERSION__;
}

export function getCorrelationID(): string {
  return __CORRELATION_ID__;
}

export function getDefaultNamespace(): string {
  return __NAMESPACE__;
}

export function getDebug(): boolean {
  return __DEBUG__;
}

export function getComponents(): $ReadOnlyArray<$Values<typeof COMPONENTS>> {
  return __COMPONENTS__;
}

export function getFundingEligibility(): FundingEligibilityType {
  return __FUNDING_ELIGIBILITY__;
}

export function getPlatform(): $Values<typeof PLATFORM> {
  return isDevice() ? PLATFORM.MOBILE : PLATFORM.DESKTOP;
}