UNPKG

smi2vtt

Version:
44 lines (37 loc) 990 B
'use strict'; var parse = require('./parse.js'); var fs = require('fs'); var jschardet = require('jschardet'); var iconv = require('iconv-lite'); /** * read file and convert UTF-8 * @param {String} file * @return {Promise} */ function readFile(file) { return new Promise(function (resolve, reject) { fs.readFile(file, function (err, data) { if (err) reject(err);else { var _jschardet$detect = jschardet.detect(data), encoding = _jschardet$detect.encoding; var encodedData = encoding != 'utf-8' ? iconv.decode(data, encoding) : data; resolve(encodedData); } }); }); } /** * convert smi(file) to vtt(string) * @param {String} smiFile * @param {Promise} */ function smi2vtt(smiFile) { return new Promise(function (resolve, reject) { readFile(smiFile).then(function (data) { resolve(parse(data)); }).catch(function (err) { return reject(err); }); }); } module.exports = smi2vtt;