smi2vtt
Version:
Convert .smi to .vtt
44 lines (37 loc) • 990 B
JavaScript
;
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;