UNPKG

simple-subtitle-parser

Version:
2 lines (1 loc) 3.64 kB
"use strict";var r=function(t,n){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])},r(t,n)};function t(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function e(){this.constructor=t}r(t,n),t.prototype=null===n?Object.create(n):(e.prototype=n.prototype,new e)}var n=function(){return n=Object.assign||function(r){for(var t,n=1,e=arguments.length;n<e;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o]);return r},n.apply(this,arguments)};"function"==typeof SuppressedError&&SuppressedError;var e=function(r){var t=r.hours,n=void 0===t?0:t,e=r.minutes,o=void 0===e?0:e,s=r.seconds,i=void 0===s?0:s,u=r.ms;return 60*n*60+60*o+i+(void 0===u?0:u)/1e3},o=function(r){function n(){return null!==r&&r.apply(this,arguments)||this}return t(n,r),n}(Error),s=function(){function r(){}return r.parseTimeStamps=function(t,o){var s=t.split(o),i=s[0],u=s[1];if(u){var a=r.splitTimeStamp(i),c=r.splitTimeStamp(u);return{startTime:n(n({},a),{totals:{inSeconds:e(a)}}),endTime:n(n({},c),{totals:{inSeconds:e(c)}})}}},r.splitTimeStamp=function(r){var t=r.split(":"),n=t[0],e=t[1],s=t[2],i=s.includes(",")?",":s.includes(".")?".":"";if(""===i)throw new o("Unable to process timestamp");var u=s.split(i),a=u[0],c=u[1];return{hours:Number(n),minutes:Number(e),seconds:Number(a),ms:Number(c)}},r}(),i=function(r){function n(){return null!==r&&r.apply(this,arguments)||this}return t(n,r),n}(Error),u=function(){function r(){}return r.processStringToArray=function(r){return r.split("\n")},r.processArrayToArrayBlocks=function(r){return r.reduce((function(r,t){return""===t?r.push([]):r[r.length-1].push(t),r}),[[]])},r.dropEmptyArrayBlocks=function(r){return r.filter((function(r){return r.length}))},r.processArrayBlocksToCues=function(r,t){return r.map((function(r,n){var e=r.reduce((function(r,n,e){if(0===e&&!n.includes(t))return r;if(!r.endTime.totals.inSeconds&&n.includes(t)){var o=s.parseTimeStamps(n,t);return o&&(r.startTime=o.startTime,r.endTime=o.endTime),r}return r.text.push(n),r}),{sequence:n,startTime:{hours:0,minutes:0,seconds:0,ms:0,totals:{inSeconds:0}},endTime:{hours:0,minutes:0,seconds:0,ms:0,totals:{inSeconds:0}},text:[]});if(e.endTime.totals.inSeconds<=e.startTime.totals.inSeconds)throw new i("Invalid Cue: Timecodes not valid");return e}))},r}(),a=function(r){function n(){var t=null!==r&&r.apply(this,arguments)||this;return t.timeStampMarker="--\x3e",t}return t(n,r),n.prototype.parse=function(r){var t=u.processStringToArray(r),n=u.processArrayToArrayBlocks(t),e=u.dropEmptyArrayBlocks(n);return u.processArrayBlocksToCues(e,this.timeStampMarker)},n}(u),c=function(r){function n(){var t=null!==r&&r.apply(this,arguments)||this;return t.timeStampMarker="--\x3e",t}return t(n,r),n.prototype.parse=function(r){var t=u.processStringToArray(r),n=u.processArrayToArrayBlocks(t),e=u.dropEmptyArrayBlocks(n),o=this.dropNonCueData(e);return u.processArrayBlocksToCues(o,this.timeStampMarker)},n.prototype.dropNonCueData=function(r){return r.filter((function(r){var t=r[0];return!(t.startsWith("WEBVTT")||t.startsWith("NOTE")||t.startsWith("STYLE"))}))},n}(u);exports.extractFormatFromFileName=function(r){var t,n=r.toLowerCase().split("."),e=n[n.length-1];switch(e){case"srt":t="SRT";break;case"vtt":t="WEBVTT";break;default:t="Unsupported"}return{extension:e,format:t}},exports.parser=function(r,t){return new Promise((function(n,e){var o="WEBVTT"===r?new c:new a;try{n(o.parse(t))}catch(r){e(r)}}))};