iab-vast-parser
Version:
Parses IAB VAST tags into iab-vast-model objects.
60 lines (44 loc) • 2.32 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _iabVastModel = require('iab-vast-model');
var _universalAdId = require('../factory/universal-ad-id');
var _universalAdId2 = _interopRequireDefault(_universalAdId);
var _creativeExtension = require('../factory/creative-extension');
var _creativeExtension2 = _interopRequireDefault(_creativeExtension);
var _linear = require('./linear');
var _linear2 = _interopRequireDefault(_linear);
var _nonLinearAds = require('./non-linear-ads');
var _nonLinearAds2 = _interopRequireDefault(_nonLinearAds);
var _companionAds = require('./companion-ads');
var _companionAds2 = _interopRequireDefault(_companionAds);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
exports.default = function ($creative, options) {
var creative = new _iabVastModel.Creative();
creative.id = $creative.id;
creative.sequence = $creative.sequence;
// VAST3 XSD specifies AdID and that seems to be what parsers have agreed on
creative.adID = $creative.AdID || $creative.adID || $creative.adId;
creative.apiFramework = $creative.apiFramework;
if ($creative.universalAdId != null) {
creative.universalAdId = (0, _universalAdId2.default)($creative.universalAdId);
}
if ($creative.creativeExtensions != null && $creative.creativeExtensions.creativeExtension) {
var _creative$extensions;
(_creative$extensions = creative.extensions).push.apply(_creative$extensions, _toConsumableArray($creative.creativeExtensions.creativeExtension.map(_creativeExtension2.default)));
}
if ($creative.linear != null) {
creative.linear = (0, _linear2.default)($creative, options);
} else if ($creative.nonLinearAds != null) {
creative.nonLinearAds = (0, _nonLinearAds2.default)($creative);
}
if ($creative.companionAds != null) {
creative.companionAds = (0, _companionAds2.default)($creative);
}
if (creative.linear == null && creative.nonLinearAds == null && creative.companionAds == null) {
options.errorHandler(new Error('Creative has no ads'));
}
return creative;
};