ultrastar2ass
Version:
Convert Ultrastar karaoke files to ASS files
34 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.asyncWriteFile = exports.asyncReadFile = exports.asyncExists = void 0;
exports.msToAss = msToAss;
exports.clone = clone;
const util_1 = require("util");
const fs_1 = require("fs");
const passThroughFunction = (fn, args) => {
if (!Array.isArray(args))
args = [args];
return (0, util_1.promisify)(fn)(...args);
};
const asyncExists = (file) => passThroughFunction(fs_1.exists, file);
exports.asyncExists = asyncExists;
const asyncReadFile = (...args) => passThroughFunction(fs_1.readFile, args);
exports.asyncReadFile = asyncReadFile;
const asyncWriteFile = (...args) => passThroughFunction(fs_1.writeFile, args);
exports.asyncWriteFile = asyncWriteFile;
function msToAss(ms) {
const date = new Date(ms);
const hour = date.getUTCHours();
const hourStr = `${hour}`.padStart(1, '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));
}
//# sourceMappingURL=utils.js.map