iab-vast-parser
Version:
Parses IAB VAST tags into iab-vast-model objects.
61 lines (51 loc) • 1.88 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _iabVastModel = require('iab-vast-model');
var _timeOffset = require('../factory/time-offset');
var _timeOffset2 = _interopRequireDefault(_timeOffset);
var _isNonEmptyString = require('./is-non-empty-string');
var _isNonEmptyString2 = _interopRequireDefault(_isNonEmptyString);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function ($trackingEvents, trackingEvents, options) {
if ($trackingEvents == null || !Array.isArray($trackingEvents.tracking)) {
return;
}
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = $trackingEvents.tracking[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var $tracking = _step.value;
if (!(0, _isNonEmptyString2.default)($tracking._value)) {
continue;
}
var conf = new _iabVastModel.TrackingEvent();
conf.uri = $tracking._value;
// VAST 3.0: 'offset' attribute is available for 'progress' events only.
// VAST 4.0: 'offset' attribute is available when <Linear> is the parent.
if ((0, _isNonEmptyString2.default)($tracking.offset)) {
try {
conf.offset = (0, _timeOffset2.default)($tracking.offset);
} catch (error) {
options.errorHandler.tryRecover(error);
}
}
trackingEvents.add($tracking.event, conf);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
};