ndn-js-contrib
Version:
Reusable 'Classes' for Named Data Networking: NameTree, PIT, FIB, ContentStore, Interfaces, and Transports
116 lines (93 loc) • 2.93 kB
JavaScript
var git_branch = "next"
var gulp = require('gulp');
var gutil = require('gulp-util');
var jshint = require('gulp-jshint');
var git = require('gulp-git');
var connect = require('gulp-connect');
var browserify = require('browserify');
var leveldown = require("leveldown")
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var uglify = require('gulp-uglify');
var mocha = require('gulp-mocha');
var Peer = require('peer').PeerServer;
var clean = require('gulp-clean');
var WebSocket = require('ws');
var babel = require("gulp-babel");
gulp.task('browserify-tests',['mocha'], function () {
// set up the browserify instance on a task basis
var b = browserify();
b.add('./test/NameTree.js')
.add('./test/ContentStore.js')
.add('./test/PIT.js')
.add('./test/FIB.js')
.add('./test/Repository.js')
.add('./test/Node.js');
var stream = b.bundle()
.pipe(source('tests.js'))
.pipe(buffer())
.pipe(gulp.dest('./test/browser/'));
gulp.src('./test/browser/index.html')
.pipe(connect.reload());
return stream;
});
gulp.task('mocha', function() {
return gulp.src(['test/*.js'], { read: false })
.pipe(mocha({ reporter: 'list' }))
.on('error', gutil.log);
});
gulp.task('lint', function() {
return gulp.src('./dist/**/*.js')
.pipe(jshint({laxcomma:true}))
.pipe(jshint.reporter('default'))
//.pipe(jshint.reporter('fail'))
});
gulp.task('live-chat',['browserify-chat'], function () {
gulp.src('./test/index.html')
.pipe(connect.reload());
});
gulp.task('live-tests',['browserify-tests'], function () {
gulp.src('./test/index.html')
.pipe(connect.reload());
});
gulp.task('jsdoc', function(){
gulp.src("./src/DataStructures/ContentStore.js")
.pipe(jsdoc.parser({plugins: ['plugins/commentsOnly.js']}))
.pipe(jsdoc.generator('./doc'))
});
gulp.task('watch', function() {
connect.server({
root: './test/',
port: 9000,
livereload: true
});
global.ps = Peer({port:8787})
global.wss = new WebSocket.Server({port:10101});
var browsers = {
firefox: false
, chrome: false
}
wss.on('connection',function(socket){
socket.on('message',function(msg){
console.log("got message", msg)
var browserResult = false;
if (msg.indexOf("success") === 0){
browserResult = true;
}
if (msg.indexOf("Chrome") > 0){
browsers.chrome = browserResult;
} else if (msg.indexOf("Gecko") > 0){
browsers.firefox = browserResult;
}
console.log(browsers, browserResult)
if (browsers.chrome && browsers.firefox){
browsers.chrome = false;
browsers.firefox = false;
gulp.src(['./src/DataStructures/*.js'])
.pipe(git.commit("auto commit: " + new Date()));
}
})
})
console.log("watching")
return gulp.watch(["src/DataStructures/*.js"], ['browserify-tests']);
})