UNPKG

thera

Version:

An ES6 Promise driven Eve Online API client.

138 lines (117 loc) 3.21 kB
var path = require('path'); var gulp = require('gulp'); var eslint = require('gulp-eslint'); var excludeGitignore = require('gulp-exclude-gitignore'); var istanbul = require('gulp-istanbul'); var nsp = require('gulp-nsp'); var plumber = require('gulp-plumber'); var babel = require('gulp-babel'); var del = require('del'); var isparta = require('isparta'); var runSequence = require('run-sequence'); var sourcemaps = require('gulp-sourcemaps'); var concat = require('gulp-concat'); var compass = require('gulp-compass'); var mocha = require('gulp-mocha'); var coveralls = require('gulp-coveralls'); // Initialize the babel transpiler so ES2015 files gets compiled // when they're loaded require('babel-register')({ extensions:['.js'], ignore: false, }); var active = false; gulp.task('nsp', function (cb) { nsp({package: path.resolve('package.json')}, cb); }); gulp.task('pre-coverage', function () { return gulp.src(['src/**/*.js']) .pipe(istanbul({ includeUntested: true, instrumenter: isparta.Instrumenter})) .pipe(istanbul.hookRequire()) }) gulp.task('coverage', ['pre-coverage'], function (cb) { var mochaErr gulp.src('./test/**/*-spec.js') .pipe(plumber()) .pipe(mocha({ reporter: 'spec' })) .on('error', function (err) { mochaErr = err console.log(JSON.stringify(err, null, 2).split('\\n').join('\n')) this.emit('end'); process.exit(1); }) .pipe(istanbul.writeReports()) .once('end', function () { cb(mochaErr) }) }) gulp.task('test', function(cb) { var mochaErr; return gulp.src('./test/**/*-spec.js') .pipe(mocha()) .once('error', function(err) { console.log(err.toString()); this.emit('end') process.exit(1); }).once('end', function() { }); }); var path = require('path'); gulp.task('coveralls', function() { console.log(path.resolve('./coverage/Icov.info')); return gulp.src(['./coverage/lcov.info']) .pipe(coveralls()); }); gulp.task('test-ci', function() { runSequence('coverage', 'coveralls') }); gulp.task('test__memorycache', function(cb) { var mochaErr; return gulp.src('./test/**/MemoryCache-spec.js') .pipe(mocha()) .once('error', function(err) { mochaErr = err; this.emit('end'); process.exit(1); }).once('end', function () { process.exit(); }); }); gulp.task('set-active', function() { active = true; }); gulp.task('set-inactive', function() { active = false; }); gulp.task('babel', function() { return gulp.src('src/**/*.js') .pipe(sourcemaps.init()) .pipe(babel({ presets: ['es2015'] })) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('dist')); }); gulp.task('clean', function () { return del('dist'); }); gulp.task('watch__build', function () { gulp.watch(['src/**/*'], function() { if (active) return; runSequence('build'); }); }); gulp.task('watch__test', function() { gulp.watch(['test/**/*-spec.js', 'src/**/*.js'], function() { if (active) return; runSequence('test'); }); }); gulp.task('build', function () { runSequence('set-active', 'clean', 'nsp', 'babel', 'set-inactive'); }); gulp.task('default', ['test']);