UNPKG

ng-array-filter

Version:

an angularJS array filter, that supports deep document filtering

98 lines (85 loc) 2.22 kB
'use strict'; var gulp = require('gulp'); var path = require('path'); var changelog = require('conventional-changelog'); var browserify = require('browserify'); var source = require('vinyl-source-stream'); var buffer = require('vinyl-buffer'); var pkg = require(path.join(__dirname, 'package.json')); var fs = require('fs'); var plugins = require('gulp-load-plugins')({ config: path.join(__dirname, 'package.json'), lazy: true }); var config = { src: { folder: 'src/', files: 'src/*.js' }, test: { files: 'test/*.spec.js' } }; var header = [ '/**', ' * <%= pkg.name %>', ' * <%= pkg.description %>', ' * @author <%= pkg.authors[0] %>', ' * @version v<%= pkg.version %>', ' * @license <%= pkg.license %>', ' */\n' ].join('\n'); gulp.task('lint', function (done) { gulp.src(config.src.files) .pipe(plugins.jshint('.jshintrc')) .pipe(plugins.jshint.reporter('jshint-stylish')); done(); }); gulp.task('spec', function(done) { gulp.src(config.test.files, {read: false}) .pipe(plugins.mocha({reporter: 'spec'})); done(); }); gulp.task('build', ['lint', 'spec'], function(done) { try { browserify({ entries: 'ng-array-filter-browserify.js', detectGlobals: false, basedir: './src/', debug: false, bundleExternal: true }) .bundle() .pipe(source('ng-array-filter.js')) .pipe(buffer()) .pipe(plugins.header(header, {pkg: pkg})) .pipe(gulp.dest('dist/')) .pipe(plugins.uglify()) .pipe(plugins.rename({extname: '.min.js'})) .pipe(gulp.dest('dist/')); }catch(err){ throw err; } done(); }); gulp.task('jscs', function() { return gulp.src(['src/*.js', 'test/*.js']) .pipe(plugins.jscs()) .pipe(plugins.jscs.reporter()); }); gulp.task('default', ['lint', 'jscs', 'spec', 'build'], function() { gulp.watch(config.src.files, ['lint', 'spec', 'build']); }); gulp.task('changelog', function(done) { var options = { repository: pkg.homepage, version: pkg.version, file: path.join(__dirname, 'CHANGELOG.md') }; changelog(options, function(err, log) { if (err) { throw err; } fs.writeFile(options.file, log, done); }); });