39 lines
1.0 KiB
JavaScript
Executable File
39 lines
1.0 KiB
JavaScript
Executable File
const AdobeAir = require('../tasks/adobeAir');
|
|
const Haxe = require('../tasks/haxe');
|
|
const FlashPlayer = require('../tasks/flashplayer');
|
|
const packageInfo = require('../package.json');
|
|
|
|
|
|
const prepareOne = (value) => {
|
|
switch (value) {
|
|
case Haxe.ID:
|
|
const haxe = new Haxe();
|
|
return haxe.prepare().then(() => haxe.install(packageInfo.haxeDependencies));
|
|
case AdobeAir.ID:
|
|
return new AdobeAir().prepare();
|
|
case FlashPlayer.ID:
|
|
return new 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 Haxe().upgrade();
|
|
};
|
|
|
|
const generate = () => function generate() {
|
|
return new Haxe().haxelib([
|
|
'run', 'protohx', 'generate', 'protohx.json'
|
|
]);
|
|
};
|
|
|
|
module.exports = prepare;
|
|
module.exports.update = update;
|
|
module.exports.generate = generate;
|