1 | const lang = require('zero-lang');
|
2 | const path = require('path');
|
3 | const eslint = require('gulp-eslint');
|
4 | const gulp = require('gulp');
|
5 | const gulpIf = require('gulp-if');
|
6 | const gutil = require('gulp-util');
|
7 | const config = require('./config');
|
8 |
|
9 | function isFixed(file) {
|
10 |
|
11 | return file.eslint != null && file.eslint.fixed;
|
12 | }
|
13 |
|
14 | lang.each(config.lintingDirs, (dir) => {
|
15 | gulp.task(
|
16 | `eslint-${dir}`, () => {
|
17 | const srcPath = path.resolve(__dirname, `../${dir}/**/*.js`);
|
18 | gulp.src(srcPath)
|
19 | .pipe(eslint())
|
20 | .on('error', (err) => {
|
21 | gutil.log(gutil.colors.red(err.message));
|
22 | })
|
23 | .pipe(eslint.format())
|
24 | .pipe(gulpIf(isFixed, gulp.dest(path.resolve(__dirname, `../${dir}/**/*.js`))))
|
25 | .pipe(eslint.failAfterError());
|
26 | }
|
27 | );
|
28 | });
|
29 |
|
30 | gulp.task('eslint', lang.map(config.lintingDirs, (dir) => `eslint-${dir}`));
|