Skip to content
Snippets Groups Projects
Select Git revision
  • master protected
  • development default protected
  • demanda4
  • quilombola_shools
  • indigenas_territorial
  • social_support
  • institution
  • rotas_indigenas
  • indigenas_territorial_route
  • pessoa_to_familia
  • quotas_acessibility
  • adding-age-to-taxa-homicidios
  • fix_eixos
  • traditional_families
  • comparador
  • updating_routes
  • metrics_fix
  • Add_region_in_institution
  • jvt_viva_trabalho
  • documentation
  • v1.2.3
  • v1.2.2
  • v1.2.1
  • v1.2.0
  • v1.1.1
  • v1.1.0
  • v1.0.3
  • v1.0.2
  • v1.0.1
  • v1.0.0
  • v0.1.0
31 results

gulpfile.babel.js

Blame
  • Forked from simcaq / simcaq-node
    1107 commits behind, 157 commits ahead of the upstream repository.
    gulpfile.babel.js 2.67 KiB
    require('babel-core/register');
    
    const fs = require('fs');
    
    const gulp = require('gulp');
    
    const babel = require('gulp-babel');
    
    const eslint = require('gulp-eslint');
    
    const mocha = require('gulp-mocha');
    
    const istanbul = require('gulp-istanbul');
    
    const nodemon = require('gulp-nodemon');
    
    const Cache = require('gulp-file-cache');
    
    const docco = require('gulp-docco');
    
    const mkdirp = require('mkdirp');
    
    const cache = new Cache();
    
    function createLogDir() {
        const logDirPath = 'build/logs';
        mkdirp(logDirPath, (err) => {
            if(err) console.error(err);
        });
    }
    
    gulp.task('lint', () => {
        // run ESLint
        gulp.src('src/**/*.js')
        .pipe(eslint())
        .pipe(eslint.format());
    })
    
    /**
    * Compile source files
    */
    gulp.task('compile', ['lint'], () => {
    
        // compile source to ES5
        gulp.src('src/**/*.js')
        .pipe(cache.filter())       // cache source files
        .pipe(babel())      // compile only modified files
        // .pipe(cache.cache())        // cache compiled files
        .pipe(gulp.dest('build'));  // move compiled files to build directory
    });
    
    gulp.task('build', ['compile'], () => {
        var filesToCopy = [ 'config.json', 'package.json' ];
        // copy configuration file to build directory
        gulp.src(filesToCopy)
        .pipe(gulp.dest('build'));
    
        createLogDir();
    });
    
    gulp.task('docco', () => {
        gulp.src('./src/**/*.js')
            .pipe(docco())
            .pipe(gulp.dest('./docs'));
    });
    
    gulp.task('doc', ['docco']);
    
    gulp.task('pre-test', () => {
        return gulp.src(['build/**/*.js', '!build/{test,test/**}'])
            .pipe(istanbul())
            .pipe(istanbul.hookRequire());
    });
    
    gulp.task('test', ['pre-test'], () => {
        process.chdir('build');
        gulp.src(['test/**/*.js'], {read: false})
        .pipe(mocha({timeout: 60000}))
        .pipe(istanbul.writeReports())
        .pipe(istanbul.enforceThresholds({
            thresholds: {
                global: {
                    statements: 80,
                    branches: 70,
                    lines: 80,
                    functions: 80
                }
            }
        }))
        .on('error', () => {
            process.exit(1);
        })
        .on('end', () => {
            process.exit();
        });
    });
    
    gulp.task('watch', ['compile'], () => {
        console.log('Watching source directory for changes');
        gulp.watch('src/**/*.js').on('change', () => {
            console.log('Recompiling source');
            gulp.start('compile');
            console.log('Source recompilation done');
        });
    });
    
    gulp.task('run', () => {
        process.chdir('build');
        nodemon({
            script: 'server.js',
            tasks: ['watch'],
            ignore: ["test/test.js", "gulpfile.babel.js"],
            ext: 'js html json',
            env: { 'NODE_ENV': 'development' }
        });
    });
    
    gulp.task('default', ['run']);