@swrve/smarttv-sdk
Version:
Swrve marketing engagement platform SDK for SmartTV OTT devices
48 lines (47 loc) • 1.3 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.md5Async = exports.md5Sync = void 0;
const md5_1 = __importDefault(require("crypto-js/md5"));
const md5_worker_1 = __importDefault(require("worker-loader?inline=true&fallback=false!./md5.worker"));
let globalMsgId = 0;
const resolves = {};
let worker;
if ("Worker" in window) {
worker = new md5_worker_1.default();
worker.onmessage = handleMessage;
}
function handleMessage(ev) {
const { id, payload } = ev.data;
const resolve = resolves[id];
if (resolve) {
resolve(payload);
}
delete resolves[id];
}
function sendMessage(payload) {
const msgId = globalMsgId++;
const msg = {
id: msgId,
payload,
};
return new Promise((resolve, reject) => {
resolves[msgId] = resolve;
worker.postMessage(msg);
});
}
function md5Sync(payload) {
return md5_1.default(payload).toString();
}
exports.md5Sync = md5Sync;
function md5Async(payload) {
if (worker) {
return sendMessage(payload);
}
else {
return Promise.resolve(md5Sync(payload));
}
}
exports.md5Async = md5Async;