@dailymotion/vmap
Version:
Javascript VMAP Parser
32 lines (26 loc) • 850 B
JavaScript
import VMAPAdBreak from './adbreak';
import { childrenByName, parseXMLNode } from './parser_utils';
class VMAP {
constructor(xml) {
if (!xml || !xml.documentElement || xml.documentElement.localName !== 'VMAP') {
throw new Error('Not a VMAP document');
}
this.version = xml.documentElement.getAttribute('version');
this.adBreaks = [];
this.extensions = [];
for (const nodeKey in xml.documentElement.childNodes) {
const node = xml.documentElement.childNodes[nodeKey];
switch (node.localName) {
case 'AdBreak':
this.adBreaks.push(new VMAPAdBreak(node));
break;
case 'Extensions':
this.extensions = childrenByName(node, 'Extension').map((extension) =>
parseXMLNode(extension)
);
break;
}
}
}
}
export default VMAP;