const ht = require('gulp-haxetool'); const packageInfo = require('../package.json'); const prepareOne = (value) => { switch (value) { case ht.Haxe.ID: const haxe = new ht.Haxe(); return haxe.prepare().then(() => haxe.install(packageInfo.haxeDependencies)); case ht.AdobeAir.ID: return new ht.AdobeAir().prepare(); case ht.FlashPlayer.ID: return new ht.FlashPlayer().prepare(); default: throw Error(`Unknown target: ${value}`) } }; const prepare = (...targets) => function prepare() { const tasks = targets.map((target) => prepareOne(target)); return Promise.all(tasks); }; const update = () => { return new ht.Haxe().upgrade(); }; const generate = () => function generate() { return new ht.Haxe().haxelib([ 'run', 'protohx', 'generate', 'protohx.json' ]); }; module.exports = prepare; module.exports.update = update; module.exports.generate = generate;