2015-12-02 13:01:31 -05:00
|
|
|
var babel = require('gulp-babel'),
|
|
|
|
concat = require('gulp-concat'),
|
2015-11-20 09:14:09 -05:00
|
|
|
documentation = require('gulp-documentation'),
|
2015-12-02 13:01:31 -05:00
|
|
|
eslint = require('gulp-eslint'),
|
|
|
|
gulp = require('gulp'),
|
|
|
|
istanbul = require('gulp-babel-istanbul'),
|
2015-11-20 09:14:09 -05:00
|
|
|
nodeunit_runner = require('gulp-nodeunit-runner'),
|
2015-12-02 13:01:31 -05:00
|
|
|
sloc = require('gulp-sloc'),
|
|
|
|
sourcemaps = require('gulp-sourcemaps');
|
2015-11-20 09:14:09 -05:00
|
|
|
|
2015-12-02 13:01:31 -05:00
|
|
|
gulp.task('transpile', function() {
|
|
|
|
return gulp.src('src/**/*.js')
|
|
|
|
.pipe(sourcemaps.init())
|
|
|
|
.pipe(babel({
|
|
|
|
presets: ['es2015'],
|
|
|
|
plugins: ['transform-es2015-modules-commonjs']
|
|
|
|
}))
|
|
|
|
.pipe(sourcemaps.write('.'))
|
|
|
|
.pipe(gulp.dest('lib'));
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.task('lint', function() {
|
|
|
|
return gulp.src('src/**/*.js')
|
|
|
|
.pipe(eslint({
|
|
|
|
"env": {
|
|
|
|
"node": true,
|
|
|
|
"es6": true
|
|
|
|
},
|
|
|
|
"ecmaFeatures": {
|
|
|
|
"arrowFunctions": true,
|
|
|
|
"blockBindings": true,
|
|
|
|
"classes": true,
|
|
|
|
"defaultParams": true,
|
|
|
|
"destructuring": true,
|
|
|
|
"forOf": true,
|
|
|
|
"modules": true
|
|
|
|
},
|
|
|
|
"rules": {
|
|
|
|
"radix": [2],
|
|
|
|
"no-with": [2],
|
|
|
|
"no-eval": [2],
|
|
|
|
"no-unreachable": [2],
|
|
|
|
"no-irregular-whitespace": [1],
|
|
|
|
"no-new-wrappers": [2],
|
|
|
|
"curly" : [2, "multi-line"],
|
|
|
|
"no-implied-eval": [2],
|
|
|
|
"no-invalid-this": [2],
|
|
|
|
"constructor-super": [2],
|
|
|
|
"no-dupe-class-members": [2],
|
|
|
|
"no-this-before-super": [2],
|
|
|
|
"prefer-arrow-callback": [1],
|
|
|
|
"no-var": [1],
|
|
|
|
"valid-jsdoc": [1]
|
|
|
|
}
|
|
|
|
}))
|
|
|
|
.pipe(eslint.format())
|
|
|
|
.pipe(eslint.failAfterError());
|
|
|
|
});
|
2015-11-20 09:14:09 -05:00
|
|
|
|
2015-12-02 13:01:31 -05:00
|
|
|
gulp.task('lint-tests', ['lint'], function() {
|
|
|
|
return gulp.src('tests/**/*.js')
|
|
|
|
.pipe(eslint({
|
|
|
|
"env": {
|
|
|
|
"node": true
|
|
|
|
},
|
|
|
|
"rules": {
|
|
|
|
"radix": [2],
|
|
|
|
"no-with": [2],
|
|
|
|
"no-eval": [2],
|
|
|
|
"no-unreachable": [1],
|
|
|
|
"no-irregular-whitespace": [1],
|
|
|
|
"curly" : [2, "multi-line"],
|
|
|
|
"no-implied-eval": [2],
|
|
|
|
"no-invalid-this": [2],
|
|
|
|
"no-dupe-class-members": [2],
|
|
|
|
"block-scoped-var": [2]
|
|
|
|
}
|
|
|
|
}))
|
|
|
|
.pipe(eslint.format())
|
|
|
|
.pipe(eslint.failAfterError());
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.task('sloc', ['transpile'], function() {
|
|
|
|
gulp.src(['src/**/*.js'])
|
|
|
|
.pipe(sloc());
|
|
|
|
gulp.src(['lib/**/*.js'])
|
|
|
|
.pipe(sloc());
|
|
|
|
})
|
|
|
|
|
|
|
|
gulp.task('docs', ['transpile'], function() {
|
|
|
|
gulp.src('./src/QueryBuilder.js')
|
2015-11-20 09:14:09 -05:00
|
|
|
.pipe(documentation({format: 'html'}))
|
|
|
|
.pipe(gulp.dest('docs'));
|
2015-12-02 13:01:31 -05:00
|
|
|
/*gulp.src('./lib/QueryBuilder.js')
|
2015-11-20 09:14:09 -05:00
|
|
|
.pipe(documentation({format: 'md'}))
|
2015-12-02 13:01:31 -05:00
|
|
|
.pipe(gulp.dest('api-docs'));*/
|
2015-11-20 09:14:09 -05:00
|
|
|
});
|
|
|
|
|
2015-12-02 13:01:31 -05:00
|
|
|
gulp.task('nodeunit', ['transpile', 'lint-tests'], function() {
|
|
|
|
return gulp.src(['tests/**/*_test.js'])
|
|
|
|
.pipe(nodeunit_runner());
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.task('fast-test', ['transpile', 'lint-tests'], function() {
|
|
|
|
return gulp.src(['tests/**/*_test.js'])
|
|
|
|
.pipe(nodeunit_runner());
|
|
|
|
});
|
|
|
|
|
|
|
|
gulp.task('test', ['transpile', 'lint-tests'], function(cb) {
|
2015-11-20 09:14:09 -05:00
|
|
|
return gulp.src(['lib/**/*.js'])
|
|
|
|
.pipe(istanbul())
|
2015-12-02 13:01:31 -05:00
|
|
|
.pipe(istanbul.hookRequire())
|
|
|
|
.on('finish', function () {
|
|
|
|
gulp.src(['tests/**/*_test.js'])
|
|
|
|
.pipe(nodeunit_runner())
|
|
|
|
.pipe(istanbul.writeReports({
|
|
|
|
dir: './coverage',
|
|
|
|
reporters: ['lcov', 'lcovonly', 'html', 'text']
|
|
|
|
}));
|
|
|
|
});
|
2015-11-20 09:14:09 -05:00
|
|
|
});
|
|
|
|
|
2015-12-02 13:01:31 -05:00
|
|
|
gulp.task('default', ['lint', 'sloc', 'docs', 'test']);
|