"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convert = void 0; const child_process = require("child_process"); const fs = require("fs"); function convert(inFilename, outFilename, encoder, args = null) { return new Promise((resolve, reject) => { if (fs.existsSync(outFilename.toString()) && fs.statSync(outFilename.toString()).mtime.getTime() > fs.statSync(inFilename.toString()).mtime.getTime()) { resolve(true); return; } if (!encoder) { resolve(false); return; } let dirend = Math.max(encoder.lastIndexOf('/'), encoder.lastIndexOf('\\')); let firstspace = encoder.indexOf(' ', dirend); let exe = encoder.substr(0, firstspace); let parts = encoder.substr(firstspace + 1).split(' '); let options = []; for (let i = 0; i < parts.length; ++i) { let foundarg = false; if (args !== null) { for (let arg in args) { if (parts[i] === '{' + arg + '}') { options.push(args[arg]); foundarg = true; break; } } } if (foundarg) continue; if (parts[i] === '{in}') options.push(inFilename.toString()); else if (parts[i] === '{out}') options.push(outFilename.toString()); else options.push(parts[i]); } // About stdio ignore: https://stackoverflow.com/a/20792428 let process = child_process.spawn(exe, options, { stdio: 'ignore' }); process.on('close', (code) => { resolve(code === 0); }); }); } exports.convert = convert; //# sourceMappingURL=Converter.js.map