kar-to-ass
Version:
Converts midi/kar karaoke files to ass format
34 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.clone = exports.usToAss = exports.asyncWriteFile = exports.asyncReadFile = exports.asyncExists = void 0;
const util_1 = require("util");
const fs_1 = require("fs");
const passThroughFunction = (fn, args) => {
if (!Array.isArray(args))
args = [args];
return util_1.promisify(fn)(...args);
};
exports.asyncExists = (file) => passThroughFunction(fs_1.exists, file);
exports.asyncReadFile = (...args) => passThroughFunction(fs_1.readFile, args);
exports.asyncWriteFile = (...args) => passThroughFunction(fs_1.writeFile, args);
function usToAss(us) {
return msToAss(Math.round(1e-3 * us));
}
exports.usToAss = usToAss;
function msToAss(ms) {
const date = new Date(ms);
const hour = date.getUTCHours();
const hourStr = `${hour}`.padStart(2, '0');
const min = date.getUTCMinutes();
const minStr = `${min}`.padStart(2, '0');
const sec = date.getUTCSeconds();
const secStr = `${sec}`.padStart(2, '0');
const mil = date.getUTCMilliseconds();
const milStr = `${mil}`.padStart(3, '0');
return `${hourStr}:${minStr}:${secStr}.${milStr.substr(0, 2)}`;
}
function clone(a) {
return JSON.parse(JSON.stringify(a));
}
exports.clone = clone;
//# sourceMappingURL=utils.js.map