iab-vast-parser
Version:
Parses IAB VAST tags into iab-vast-model objects.
106 lines (77 loc) • 4.03 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _iabVastModel = require('iab-vast-model');
var _mediaFile = require('./media-file');
var _mediaFile2 = _interopRequireDefault(_mediaFile);
var _interactiveCreativeFile = require('./interactive-creative-file');
var _interactiveCreativeFile2 = _interopRequireDefault(_interactiveCreativeFile);
var _icon = require('./icon');
var _icon2 = _interopRequireDefault(_icon);
var _click = require('./click');
var _click2 = _interopRequireDefault(_click);
var _timeOffset = require('./time-offset');
var _timeOffset2 = _interopRequireDefault(_timeOffset);
var _mapTrackingEvents = require('../util/map-tracking-events');
var _mapTrackingEvents2 = _interopRequireDefault(_mapTrackingEvents);
var _isNonEmptyString = require('../util/is-non-empty-string');
var _isNonEmptyString2 = _interopRequireDefault(_isNonEmptyString);
var _isNonEmptyArray = require('../util/is-non-empty-array');
var _isNonEmptyArray2 = _interopRequireDefault(_isNonEmptyArray);
var _hasValue = require('../util/has-value');
var _hasValue2 = _interopRequireDefault(_hasValue);
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); } }
var mapVideoClicks = function mapVideoClicks($videoClicks, videoClicks) {
if ($videoClicks.clickThrough != null && (0, _hasValue2.default)($videoClicks.clickThrough)) {
videoClicks.clickThrough = (0, _click2.default)($videoClicks.clickThrough);
}
if ($videoClicks.clickTracking != null) {
var _videoClicks$clickTra;
(_videoClicks$clickTra = videoClicks.clickTrackings).push.apply(_videoClicks$clickTra, _toConsumableArray($videoClicks.clickTracking.filter(_hasValue2.default).map(_click2.default)));
}
if ($videoClicks.customClick != null) {
var _videoClicks$customCl;
(_videoClicks$customCl = videoClicks.customClicks).push.apply(_videoClicks$customCl, _toConsumableArray($videoClicks.customClick.filter(_hasValue2.default).map(_click2.default)));
}
};
exports.default = function ($creative, options) {
var $linear = $creative.linear;
var linear = new _iabVastModel.Linear();
if ((0, _isNonEmptyString2.default)($linear.skipoffset)) {
linear.skipoffset = (0, _timeOffset2.default)($linear.skipoffset, options);
}
if ($linear.duration != null) {
linear.duration = $linear.duration._value;
}
if ($linear.mediaFiles != null) {
if ($linear.mediaFiles.mezzanine != null) {
linear.mezzanine = $linear.mediaFiles.mezzanine._value;
}
if ($linear.mediaFiles.mediaFile != null) {
var _linear$mediaFiles;
(_linear$mediaFiles = linear.mediaFiles).push.apply(_linear$mediaFiles, _toConsumableArray($linear.mediaFiles.mediaFile.map(_mediaFile2.default)));
}
if ($linear.mediaFiles.interactiveCreativeFile != null) {
var _linear$interactiveCr;
(_linear$interactiveCr = linear.interactiveCreativeFiles).push.apply(_linear$interactiveCr, _toConsumableArray($linear.mediaFiles.interactiveCreativeFile.map(_interactiveCreativeFile2.default)));
}
}
if ($linear.adParameters != null) {
linear.adParameters = $linear.adParameters._value;
}
if ($linear.videoClicks != null) {
linear.videoClicks = new _iabVastModel.VideoClicks();
mapVideoClicks($linear.videoClicks, linear.videoClicks);
}
if ($linear.trackingEvents != null && (0, _isNonEmptyArray2.default)($linear.trackingEvents.tracking)) {
linear.trackingEvents = new _iabVastModel.TrackingEvents();
(0, _mapTrackingEvents2.default)($linear.trackingEvents, linear.trackingEvents, options);
}
if ($linear.icons != null && $linear.icons.icon) {
var _linear$icons;
(_linear$icons = linear.icons).push.apply(_linear$icons, _toConsumableArray($linear.icons.icon.map(_icon2.default)));
}
return linear;
};