UNPKG

@swrve/smarttv-sdk

Version:

Swrve marketing engagement platform SDK for SmartTV OTT devices

45 lines (44 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResourceManagerInternal = void 0; const StorageManager_1 = require("../Storage/StorageManager"); const ResourceManager_1 = require("./ResourceManager"); const SwrveResource_1 = require("./SwrveResource"); class ResourceManagerInternal { constructor() { const getResources = () => { // return a copy return this.resources ? this.resources.map(resource => (Object.assign({}, resource))) : null; }; const getResource = (resourceId) => { return (this.resourcesIndex && this.resourcesIndex[resourceId]) || new SwrveResource_1.SwrveResource({}); }; this.resourceManager = new ResourceManager_1.ResourceManager(getResources, getResource); } storeResources(resources, userId) { this.setResources(resources); StorageManager_1.StorageManager.saveDataWithMD5Hash("resources" + userId, JSON.stringify(resources)); } getResources(userId) { return StorageManager_1.StorageManager.getDataWithMD5Hash("resources" + userId) .then(data => { let resources = null; if (data) { resources = JSON.parse(data); } this.setResources(resources); return resources; }); } getResourceManager() { return this.resourceManager; } setResources(resources) { this.resources = resources; this.resourcesIndex = (resources || []).reduce((result, item) => { result[item.uid] = new SwrveResource_1.SwrveResource(item); return result; }, {}); } } exports.ResourceManagerInternal = ResourceManagerInternal;