1 | 'use strict';
|
2 |
|
3 | process.env.BLUEBIRD_DEBUG = 1;
|
4 |
|
5 | const gulp = require('gulp');
|
6 | const $ = require('gulp-load-plugins')();
|
7 | const browserify = require('browserify');
|
8 | const del = require('del');
|
9 | const sourceStream = require('vinyl-source-stream');
|
10 | const buffer = require('vinyl-buffer');
|
11 | const KarmaServer = require('karma').Server;
|
12 |
|
13 | const jsFiles = [
|
14 | '*.js',
|
15 | 'lib/**/*.js',
|
16 | 'test/**/*.js'
|
17 | ];
|
18 |
|
19 | gulp.task('default', ['clean'], () => {
|
20 | return gulp.start(['build', 'test:browser']);
|
21 | });
|
22 |
|
23 | gulp.task('lint', () => {
|
24 | return gulp.src(jsFiles)
|
25 | .pipe($.eslint())
|
26 | .pipe($.eslint.format())
|
27 | .pipe($.eslint.failAfterError())
|
28 | .pipe($.jscs())
|
29 | .pipe($.jscs.reporter())
|
30 | .pipe($.jscs.reporter('fail'));
|
31 | });
|
32 |
|
33 | gulp.task('test', ['test:node']);
|
34 |
|
35 | gulp.task('test:node', () => {
|
36 | return gulp.src('test/node/**/*Spec.js', {read: false})
|
37 | .pipe($.mocha({
|
38 | reporter: 'spec'
|
39 | }));
|
40 | });
|
41 |
|
42 | gulp.task('test:browser', ['build'], (done) => {
|
43 | const karmaConfig = {
|
44 | browsers: ['Chrome', 'Firefox'],
|
45 | frameworks: ['mocha'],
|
46 | reporters: ['progress'],
|
47 | autoWatch: false,
|
48 | singleRun: true,
|
49 | files: [
|
50 | 'dist/hamjest.js',
|
51 | 'test/browser/**/*.js'
|
52 | ]
|
53 | };
|
54 |
|
55 | const server = new KarmaServer(karmaConfig, done);
|
56 | server.start();
|
57 | });
|
58 |
|
59 | gulp.task('build', ['lint', 'test'], () => {
|
60 | const b = browserify({
|
61 | entries: './index.js',
|
62 | standalone: 'hamjest',
|
63 | debug: true
|
64 | }).transform('babelify', {presets: ['es2015']});
|
65 |
|
66 | return b.bundle()
|
67 | .pipe(sourceStream('hamjest.js'))
|
68 | .pipe(buffer())
|
69 | .pipe(gulp.dest('./dist'))
|
70 | .pipe($.uglify())
|
71 | .pipe($.rename({
|
72 | suffix: '.min'
|
73 | }))
|
74 | .pipe(gulp.dest('./dist'));
|
75 | });
|
76 |
|
77 | gulp.task('clean', () => {
|
78 | return del('./dist');
|
79 | });
|
80 |
|
81 | gulp.task('dev', () => {
|
82 | gulp.watch(jsFiles, ['lint', 'test']);
|
83 | });
|