UNPKG

videojs-vast-vpaid

Version:
66 lines (45 loc) 1.51 kB
const utilities = require('../../utils/utilityFunctions'); const durationRegex = /(\d\d):(\d\d):(\d\d)(\.(\d\d\d))?/; const parsers = { duration: function parseDuration (durationStr) { let match, durationInMs; if (utilities.isString(durationStr)) { match = durationStr.match(durationRegex); if (match) { durationInMs = parseHoursToMs(match[1]) + parseMinToMs(match[2]) + parseSecToMs(match[3]) + parseInt(match[5] || 0, 10); } } return isNaN(durationInMs) ? null : durationInMs; /** * local functions ***/ function parseHoursToMs (hourStr) { return parseInt(hourStr, 10) * 60 * 60 * 1000; } function parseMinToMs (minStr) { return parseInt(minStr, 10) * 60 * 1000; } function parseSecToMs (secStr) { return parseInt(secStr, 10) * 1000; } }, offset: function parseOffset (offset, duration) { if (isPercentage(offset)) { return calculatePercentage(offset, duration); } return parsers.duration(offset); /** * Local function ***/ function isPercentage (offset) { const percentageRegex = /^\d+(\.\d+)?%$/g; return percentageRegex.test(offset); } function calculatePercentage (percentStr, duration) { if (duration) { return calcPercent(duration, parseFloat(percentStr.replace('%', ''))); } return null; } function calcPercent (quantity, percent) { return quantity * percent / 100; } } }; module.exports = parsers;