UNPKG

kar-to-ass

Version:

Converts midi/kar karaoke files to ass format

34 lines 1.3 kB
"use strict"; 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