iab-vast-parser
Version:
Parses IAB VAST tags into iab-vast-model objects.
98 lines (74 loc) • 3.13 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _adSystem = require('../factory/ad-system');
var _adSystem2 = _interopRequireDefault(_adSystem);
var _creative = require('../factory/creative');
var _creative2 = _interopRequireDefault(_creative);
var _extension = require('../factory/extension');
var _extension2 = _interopRequireDefault(_extension);
var _impression = require('../factory/impression');
var _impression2 = _interopRequireDefault(_impression);
var _pricing = require('../factory/pricing');
var _pricing2 = _interopRequireDefault(_pricing);
var _viewableImpression = require('../factory/viewable-impression');
var _viewableImpression2 = _interopRequireDefault(_viewableImpression);
var _verification = require('../factory/verification');
var _verification2 = _interopRequireDefault(_verification);
var _isNonEmptyString = require('../util/is-non-empty-string');
var _isNonEmptyString2 = _interopRequireDefault(_isNonEmptyString);
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 hasValue = function hasValue($node) {
return $node != null && (0, _isNonEmptyString2.default)($node._value);
};
exports.default = function ($ad, $impl, ad, options) {
ad.id = $ad.id;
ad.conditionalAd = $ad.conditionalAd;
ad.sequence = $ad.sequence;
if ($impl.adSystem != null) {
ad.adSystem = (0, _adSystem2.default)($impl.adSystem);
}
if ($impl.impression != null) {
var _ad$impressions;
(_ad$impressions = ad.impressions).push.apply(_ad$impressions, _toConsumableArray($impl.impression.filter(hasValue).map(_impression2.default)));
}
if ($impl.pricing != null) {
ad.pricing = (0, _pricing2.default)($impl.pricing);
}
if ($impl.error != null) {
var _ad$errors;
(_ad$errors = ad.errors).push.apply(_ad$errors, _toConsumableArray($impl.error.filter(hasValue).map(function ($err) {
return $err._value;
})));
}
if ($impl.viewableImpression != null) {
ad.viewableImpression = (0, _viewableImpression2.default)($impl.viewableImpression);
}
if ($impl.adVerifications != null) {
$impl.adVerifications.verification.forEach(function ($verification) {
try {
var verification = (0, _verification2.default)($verification, options);
ad.verifications.push(verification);
} catch (err) {
options.errorHandler(err);
}
});
}
if ($impl.extensions != null) {
var _ad$extensions;
(_ad$extensions = ad.extensions).push.apply(_ad$extensions, _toConsumableArray($impl.extensions.extension.map(_extension2.default)));
}
if ($impl.creatives != null) {
$impl.creatives.creative.forEach(function ($creative) {
try {
var creative = (0, _creative2.default)($creative, options);
ad.creatives.add(creative);
} catch (err) {
options.errorHandler(err);
}
});
}
return ad;
};