UNPKG

1.41 kBJavaScriptView Raw
1'use strict';
2var gulp = require('gulp');
3var jshint = require('gulp-jshint');
4var istanbul = require('gulp-istanbul');
5var coveralls = require('gulp-coveralls');
6var mocha = require('gulp-spawn-mocha');
7var batch = require('gulp-batch');
8var betterConsole = require('better-console');
9var jsdoc = require('gulp-jsdoc');
10var jsPaths = ['*.js', 'lib/**/*.js', 'test/**/*.js'];
11
12var test = function(cb) {
13 return gulp.src(['lib/**/*.js', 'index.js'])
14 .pipe(istanbul())
15 .on('finish', function() {
16 gulp.src(['test/*.js'])
17 .pipe(mocha({reporter: 'spec', istanbul: true}))
18 .on('end', cb);
19 });
20};
21
22var lint = function() {
23 return gulp.src(jsPaths)
24 .pipe(jshint())
25 .pipe(jshint.reporter('jshint-stylish'));
26};
27
28var clear = function() {
29 betterConsole.clear();
30};
31
32gulp.task('default', ['lint', 'test', 'jsdoc']);
33
34gulp.task('ci', ['lint', 'test', 'coveralls']);
35
36gulp.task('watch', function() {
37 gulp.watch(jsPaths, batch(function(events, cb) {
38 clear();
39 lint();
40 test(function() {
41 cb();
42 });
43 }));
44});
45
46gulp.task('lint', function() {
47 lint();
48});
49
50gulp.task('test', function(cb) {
51 test(function() {
52 cb();
53 });
54});
55
56gulp.task('coveralls', ['test'], function() {
57 return gulp.src('coverage/lcov.info').pipe(coveralls());
58});
59
60gulp.task('jsdoc', function() {
61 return gulp.src(['lib/goldwasher.js', 'README.md'])
62 .pipe(jsdoc('./docs'));
63});
\No newline at end of file