UNPKG

videojs-vast-vpaid

Version:
59 lines (47 loc) 1.65 kB
const utilities = require('../../utils/utilityFunctions'); const Companion = require('./Companion'); const Linear = require('./Linear'); function Creative (creativeJTree) { if (!(this instanceof Creative)) { return new Creative(creativeJTree); } this.id = creativeJTree.attr('id'); this.sequence = creativeJTree.attr('sequence'); this.adId = creativeJTree.attr('adId'); this.apiFramework = creativeJTree.attr('apiFramework'); if (creativeJTree.linear) { this.linear = new Linear(creativeJTree.linear); } if (creativeJTree.companionAds) { const companions = []; let companionAds = creativeJTree.companionAds && creativeJTree.companionAds.companion; if (utilities.isDefined(companionAds)) { companionAds = utilities.isArray(companionAds) ? companionAds : [companionAds]; companionAds.forEach((companionData) => { companions.push(new Companion(companionData)); }); } this.companionAds = companions; } } /** * Returns true if the browser supports at the creative. */ Creative.prototype.isSupported = function () { if (this.linear) { return this.linear.isSupported(); } return true; }; Creative.parseCreatives = function parseCreatives (creativesJTree) { const creatives = []; let creativesData; if (utilities.isDefined(creativesJTree) && utilities.isDefined(creativesJTree.creative)) { creativesData = utilities.isArray(creativesJTree.creative) ? creativesJTree.creative : [creativesJTree.creative]; creativesData.forEach((creative) => { creatives.push(new Creative(creative)); }); } return creatives; }; module.exports = Creative;