@swrve/smarttv-sdk
Version:
Swrve marketing engagement platform SDK for SmartTV OTT devices
40 lines (39 loc) • 1.79 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const base_1 = __importDefault(require("./platforms/base"));
const tizen_1 = __importDefault(require("./platforms/tizen"));
const webos_1 = __importDefault(require("./platforms/webos"));
class PAL {
/**
* determine the platform and returns Platform object
* @param {string} [explicitPlatform] - force platform name
*/
static getPlatform(config, explicitPlatform) {
if (PAL.platform !== undefined) {
return PAL.platform;
}
const agent = (navigator !== undefined && navigator !== null) ? navigator.userAgent : "Base";
if (agent.search(/Tizen/) > -1 ||
(explicitPlatform !== undefined
&& explicitPlatform !== null
&& explicitPlatform.toLowerCase() === "samsung-tizen")) {
PAL.platform = (config !== undefined) ? new tizen_1.default(config) : new tizen_1.default();
}
else if (agent.search(/web0s/i) > -1 ||
(explicitPlatform !== undefined
&& explicitPlatform !== null
&& explicitPlatform.toLowerCase() === "webos")) {
PAL.platform = (config !== undefined) ? new webos_1.default(config) : new webos_1.default();
}
else {
PAL.platform = (config !== undefined) ? new base_1.default(config) : new base_1.default();
}
return PAL.platform;
}
}
exports.default = PAL;
var navigation_1 = require("./platforms/navigation");
Object.defineProperty(exports, "Navigation", { enumerable: true, get: function () { return navigation_1.default; } });