havana-router
Version:
A simple router for routed response handlers
78 lines (67 loc) • 2.15 kB
JavaScript
var babel = require( 'gulp-babel' );
var babelify = require( 'babelify' );
var browserify = require( 'browserify' );
var concat = require( 'gulp-concat' );
var gulp = require( 'gulp' );
var insert = require( 'gulp-insert' );
var lint = require( 'gulp-eslint' );
var mocha = require( 'gulp-mocha' );
var rename = require( 'gulp-rename' );
var source = require( 'vinyl-source-stream' );
gulp.task( 'lint', function () {
return gulp.src([
'./gulpfile.js',
'./lib/**/*.js',
'./test/lib/**/*.js',
])
.pipe( lint())
.pipe( lint.format());
});
gulp.task( 'compileServer', [ 'lint' ], function () {
return gulp.src( './lib/router.js' )
.pipe( babel())
.pipe( rename({
'suffix': '.server',
}))
.pipe( gulp.dest( './dist' ));
});
gulp.task( 'compileBrowser', [ 'lint' ], function () {
return browserify({
'entries': './lib/router.js',
'standalone': 'havana-router',
})
.transform( babelify )
.bundle()
.pipe( source( 'router.browser.js' ))
.pipe( gulp.dest( './dist' ));
});
gulp.task( 'compileTests', [ 'lint' ], function () {
return gulp.src([ './test/lib/**/*.js' ])
.pipe( babel({
'stage': 0,
}))
.pipe( gulp.dest( './test/dist' ));
});
gulp.task( 'compile', [ 'compileServer', 'compileBrowser', 'compileTests' ]);
gulp.task( 'polyfillServer', [ 'compile' ], function () {
return gulp.src( './dist/router.server.js' )
.pipe( insert.prepend( 'require(\'../node_modules/gulp-babel/node_modules/babel-core/polyfill.js\');\r\n\n' ))
.pipe( rename({
'suffix': '.with-polyfill',
}))
.pipe( gulp.dest( './dist' ));
});
gulp.task( 'polyfillBrowser', [ 'compile' ], function () {
return gulp.src([
'./node_modules/gulp-babel/node_modules/babel-core/browser-polyfill.js',
'./dist/router.browser.js',
])
.pipe( concat( 'router.browser.with-polyfill.js' ))
.pipe( gulp.dest( './dist' ));
});
gulp.task( 'polyfill', [ 'polyfillServer', 'polyfillBrowser' ]);
gulp.task( 'test', function () {
return gulp.src( './test/dist/**/*.js' )
.pipe( mocha());
});
gulp.task( 'default', [ 'compile', 'polyfill' ]);