videojs-vast-vpaid
Version:
VAST plugin to use with video.js
59 lines (47 loc) • 1.65 kB
JavaScript
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;