@swrve/smarttv-sdk
Version:
Swrve marketing engagement platform SDK for SmartTV OTT devices
162 lines (161 loc) • 6.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SwrveSDK = void 0;
const SwrveInternal_1 = require("./SwrveInternal");
const SwrveConstants_1 = require("./utils/SwrveConstants");
let swrveInternal = null;
class SwrveSDK {
constructor(config) {
swrveInternal = new SwrveInternal_1.SwrveInternal(config);
}
static createInstance(config) {
if (config.apiKey.toLowerCase().startsWith("secret-")) {
throw Error(`API Key ${config.apiKey} is invalid. It should not start with 'secret-'`);
}
if (SwrveSDK._instance) {
return SwrveSDK._instance;
}
else {
SwrveSDK._instance = new SwrveSDK(config);
SwrveSDK._instance.init();
return SwrveSDK._instance;
}
}
init() {
SwrveSDK.checkInstance().init();
}
static checkInstance() {
if (swrveInternal == null) {
throw Error(SwrveConstants_1.GET_INSTANCE_ERROR);
}
return swrveInternal;
}
//******************************** Callbacks ****************************************************//
static onResourcesLoaded(callback) {
SwrveSDK.checkInstance().onResourcesLoaded(callback);
}
static onCampaignLoaded(callback) {
SwrveSDK.checkInstance().onCampaignLoaded(callback);
}
static onMessage(callback) {
SwrveSDK.checkInstance().onMessage(callback);
}
static getResources(callback) {
SwrveSDK.checkInstance().getResources(callback);
}
static getUserResourcesDiff(callback) {
SwrveSDK.checkInstance().getUserResourcesDiff(callback);
}
static onIAMDismissed(callback) {
SwrveSDK.checkInstance().onIAMDismissed(callback);
}
static onCustomButtonClicked(callback) {
SwrveSDK.checkInstance().onCustomButtonClicked(callback);
}
static onIAMShown(callback) {
SwrveSDK.checkInstance().onIAMShown(callback);
}
//******************************** Accessor methods *********************************************//
static getConfig() {
return SwrveSDK.checkInstance().getConfig();
}
static getInstance() {
if (SwrveSDK._instance == null) {
throw new Error(SwrveConstants_1.GET_INSTANCE_ERROR);
}
return SwrveSDK._instance;
}
static getResourceManager() {
return SwrveSDK.checkInstance().getResourceManager();
}
static getUserInfo() {
return SwrveSDK.checkInstance().getUserInfo();
}
static getSDKVersion() {
return SwrveConstants_1.sdkVersion;
}
//******************************** Embedded Campaigns *********************************************//
static embeddedMessageWasShownToUser(message) {
return SwrveSDK.checkInstance().embeddedMessageWasShownToUser(message);
}
static embeddedMessageButtonWasPressed(message, buttonName) {
return SwrveSDK.checkInstance().embeddedMessageButtonWasPressed(message, buttonName);
}
static getPersonalizedEmbeddedMessageData(message, personalizationProperties) {
return SwrveSDK.checkInstance().getPersonalizedEmbeddedMessageData(message, personalizationProperties);
}
static getPersonalizedText(text, personalizationProperties) {
return SwrveSDK.checkInstance().getPersonalizedText(text, personalizationProperties);
}
//*************************************** Event Management ************************************//
static sendEvent(name, payload = {}) {
SwrveSDK.checkInstance().sendEvent(name, payload);
}
static sendUserUpdateWithDate(keyName, date) {
SwrveSDK.checkInstance().sendUserUpdateWithDate(keyName, date);
}
static sendUserUpdate(attributes) {
SwrveSDK.checkInstance().sendUserUpdate(attributes);
}
static sendPurchaseEvent(name, currency, cost, quantity) {
SwrveSDK.checkInstance().sendPurchaseEvent(name, currency, cost, quantity);
}
static sendInAppPurchaseWithoutReceipt(quantity, productId, productPrice, currency, rewards) {
SwrveSDK.checkInstance().sendInAppPurchaseWithoutReceipt(quantity, productId, productPrice, currency, rewards);
}
static sendCurrencyGiven(currencyGiven, amount) {
SwrveSDK.checkInstance().sendCurrencyGiven(currencyGiven, amount);
}
static sendQueuedEvents() {
SwrveSDK.checkInstance().sendQueuedEvents();
}
//*************************************** Lifecycle / Account Management ************************************//
static identify(externalUserId, onIdentifySuccess, onIdentifyError) {
SwrveSDK.checkInstance().identify(externalUserId, onIdentifySuccess, onIdentifyError);
}
static start(userId) {
SwrveSDK.checkInstance().start(userId);
}
static isStarted() {
return SwrveSDK.checkInstance().isSDKStarted();
}
static shutdown() {
SwrveSDK.checkInstance().shutdown();
swrveInternal = null;
SwrveSDK._instance = null;
}
static stop() {
SwrveSDK.checkInstance().stop();
}
//*************************************** Message Center *******************************//
static getMessageCenterCampaigns(personalizationProperties) {
return SwrveSDK.checkInstance().getMessageCenterCampaigns(personalizationProperties);
}
static showMessageCenterCampaign(campaign, personalizationProperties) {
return SwrveSDK.checkInstance().showMessageCenterCampaign(campaign, personalizationProperties);
}
static markMessageCenterCampaignAsSeen(campaign) {
SwrveSDK.checkInstance().markMessageCenterCampaignAsSeen(campaign);
}
static removeMessageCenterCampaign(campaign) {
SwrveSDK.checkInstance().removeMessageCenterCampaign(campaign);
}
static getCampaignState(campaignId) {
return SwrveSDK.checkInstance().getCampaignState(campaignId);
}
static isMessageShowing() {
return SwrveSDK.checkInstance().isMessageShowing();
}
//*************************************** Other ************************************//
static saveToStorage() {
SwrveSDK.checkInstance().saveToStorage();
}
static showCampaign(campaign) {
return SwrveSDK.checkInstance().showCampaign(campaign);
}
static getPlatform() {
return SwrveSDK.checkInstance().getPlatform();
}
}
exports.SwrveSDK = SwrveSDK;
SwrveSDK._instance = null;