Home Reference Source

src/session.js

/* @flow */

import { SDK_SETTINGS } from "@paypal/sdk-constants/src";
import { getStorage, type Storage } from "@krakenjs/belter/src";

import { getNamespace, getSDKAttribute } from "./script";

function getSDKStorage(): Storage {
  return getStorage({
    name: getNamespace(),
  });
}

export function getSessionID(): string {
  return getSDKStorage().getSessionID();
}

export function getStorageState<T>(handler: (storage: Object) => T): T {
  return getSDKStorage().getState(handler);
}

export function getStorageID(): string {
  return getSDKStorage().getID();
}

export function getSessionState<T>(handler: (state: Object) => T): T {
  return getSDKStorage().getSessionState(handler);
}

export function getClientMetadataID(): ?string {
  return getSDKAttribute(SDK_SETTINGS.CLIENT_METADATA_ID);
}