UNPKG

@ubiquits/toolchain

Version:

Toolchain for ubiquits projects, modules & core

71 lines (51 loc) 1.64 kB
const sourcemaps = require('gulp-sourcemaps'); const merge2 = require('merge2'); const chalk = require('chalk'); var spawn = require('child_process').spawn; const plumber = require('gulp-plumber'); const fs = require('fs-extra'); const preset2015 = require('babel-preset-es2015'); const {clean} = require('./clean'); function task(cli, project) { cli.command('build [environment]', 'Builds typescript files') .action(function (args, callback) { return clean(project, this, ['lib']) .then(() => build(project, this, args.environment)); }); } function build(project, cli, context) { return new Promise((resolve, reject) => { let config = {}; const allConfig = project.paths.source.all.tsConfig; const serverConfig = project.paths.source.server.tsConfig; switch (context) { case 'server': config = serverConfig; break; default: config = allConfig; } const cmd = `tsc -p ${config} --pretty --diagnostics`; cli.log(cmd); const argArray = cmd.split(' '); const compiler = spawn(argArray.shift(), argArray, { stdio: 'inherit' }); compiler.on('close', (code) => { let color = 'red'; if (code === 0) { color = 'green'; } cli.log(chalk[color](`typescript compiler exited with code ${code}`)); if (code !== 0) { return reject(code); } resolve(); }); compiler.on('error', (code) => { cli.log(chalk.red(`Failed to run '${args}'.\n${code}`)); reject(); }); }); } module.exports = {task, build};