UNPKG

kar-to-ass

Version:

Converts midi/kar karaoke files to ass format

36 lines (27 loc) 1.08 kB
import {promisify} from 'util'; import {exists, readFile, writeFile} from 'fs'; const passThroughFunction = (fn: any, args: any) => { if(!Array.isArray(args)) args = [args]; return promisify(fn)(...args); }; export const asyncExists = (file: string) => passThroughFunction(exists, file); export const asyncReadFile = (...args: any) => passThroughFunction(readFile, args); export const asyncWriteFile = (...args: any) => passThroughFunction(writeFile, args); export function usToAss(us: number): string { return msToAss(Math.round(1e-3 * us)); } function msToAss(ms: number): string { 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)}`; } export function clone(a: any) { return JSON.parse(JSON.stringify(a)); }