"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.executeHaxe = void 0; const child_process = require("child_process"); const fs = require("fs"); const path = require("path"); const log = require("./log"); const exec_1 = require("./exec"); function executeHaxe(from, haxeDirectory, options) { return new Promise((resolve, reject) => { let exe = 'haxe'; let env = process.env; if (fs.existsSync(haxeDirectory) && fs.statSync(haxeDirectory).isDirectory()) { let localexe = path.resolve(haxeDirectory, 'haxe' + (0, exec_1.sys)()); if (!fs.existsSync(localexe)) localexe = path.resolve(haxeDirectory, 'haxe'); if (fs.existsSync(localexe)) exe = localexe; const stddir = path.resolve(haxeDirectory, 'std'); if (fs.existsSync(stddir) && fs.statSync(stddir).isDirectory()) { env.HAXE_STD_PATH = stddir; } } let haxe = child_process.spawn(exe, options, { env: env, cwd: path.normalize(from) }); haxe.stdout.on('data', (data) => { log.info(data.toString()); }); haxe.stderr.on('data', (data) => { log.error(data.toString()); }); haxe.on('close', (code) => { if (code === 0) { resolve(); } else reject('Haxe compiler error.'); }); }); } exports.executeHaxe = executeHaxe; //# sourceMappingURL=Haxe.js.map