UNPKG

iab-vast-parser

Version:

Parses IAB VAST tags into iab-vast-model objects.

71 lines (58 loc) 2.75 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var _iabVastModel = require('iab-vast-model'); var _ad = require('./ad'); var _ad2 = _interopRequireDefault(_ad); 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 triageAds = function triageAds($$ads) { var $$adsWithSequence = []; var $$adsWithoutSequence = []; for (var i = 0; i < $$ads.length; ++i) { var $ad = $$ads[i]; if (typeof $ad.sequence !== 'undefined') { $$adsWithSequence.push($ad); } else { $$adsWithoutSequence.push($ad); } } return [$$adsWithSequence, $$adsWithoutSequence]; }; var createVAST = function createVAST($vast, options) { var _vast$errors; var vast = new _iabVastModel.VAST(); vast.version = $vast.version; (_vast$errors = vast.errors).push.apply(_vast$errors, _toConsumableArray($vast.error.map(function (err) { return err._value; }).filter(function (uri) { return uri !== ''; }))); var _triageAds = triageAds($vast.ad), _triageAds2 = _slicedToArray(_triageAds, 2), $$adsWithSequence = _triageAds2[0], $$adsWithoutSequence = _triageAds2[1]; if ($$adsWithSequence.length > 0) { if (options.noSingleAdPods && $vast.ad.length === 1 && $$adsWithSequence.length === 1) { $$adsWithoutSequence.push($$adsWithSequence[0]); } else { vast.adPod = new _iabVastModel.AdPod(); for (var i = 0; i < $$adsWithSequence.length; i++) { vast.adPod.ads.add((0, _ad2.default)($$adsWithSequence[i], options)); } } } for (var _i = 0; _i < $$adsWithoutSequence.length; _i++) { vast.ads.add((0, _ad2.default)($$adsWithoutSequence[_i], options)); } return vast; }; exports.default = function ($vast, options) { try { return createVAST($vast, options); } catch (err) { options.errorHandler(err); } };