diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..3ddc863 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,29 @@ +var gulp = require('gulp'); +var jshint = require('gulp-jshint'); +var appFiles = ['index.js', 'lib/**/*.js', 'bin/**/*.js']; //all files in jshint that are NOT test files +var testFiles = ['test/**/*.js']; + +gulp.task('jshint:test', function() { + return gulp.src(testFiles) + .pipe(jshint({ + node: true, + globals: { + describe: true, + it: true, + before: true, + after: true + } + })) + .pipe(jshint.reporter('default')); +}); + +gulp.task('jshint:app', function() { + return gulp.src(appFiles) + .pipe(jshint({ + node:true + })) + .pipe(jshint.reporter('default')); +}) + +gulp.task('jshint', ['jshint:test', 'jshint:app']); +gulp.task('default', ['jshint']); diff --git a/lib/0ebb1720-8268-11e5-9697-d7add4e113c7.txt b/lib/0ebb1720-8268-11e5-9697-d7add4e113c7.txt new file mode 100644 index 0000000..6dd2958 --- /dev/null +++ b/lib/0ebb1720-8268-11e5-9697-d7add4e113c7.txt @@ -0,0 +1,6 @@ +GET / HTTP/1.1 +Host: localhost:3000 +Accept-Encoding: gzip, deflate +User-Agent: node-superagent/1.4.0 +Connection: close + diff --git a/lib/f76434d0-8267-11e5-a85c-bdaaeda19f30.txt b/lib/f76434d0-8267-11e5-a85c-bdaaeda19f30.txt new file mode 100644 index 0000000..6dd2958 --- /dev/null +++ b/lib/f76434d0-8267-11e5-a85c-bdaaeda19f30.txt @@ -0,0 +1,6 @@ +GET / HTTP/1.1 +Host: localhost:3000 +Accept-Encoding: gzip, deflate +User-Agent: node-superagent/1.4.0 +Connection: close + diff --git a/package.json b/package.json new file mode 100644 index 0000000..3aba8d0 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "rick_patci_tcp", + "version": "0.1.0", + "description": "TCP server writeable stream", + "main": "patci_tcp_server.js", + "dependencies": { + "node-uuid": "^1.4.3", + "superagent": "^1.4.0" + }, + "devDependencies": { + "chai": "^3.4.0", + "chai-http": "^1.0.0", + "gulp": "^3.9.0", + "gulp-jshint": "^1.12.0", + "mocha": "^2.3.3" + }, + "scripts": { + "test": "./node_modules/mocha/bin/mocha test" + }, + "keywords": [ + "tcp" + ], + "author": "Rick Patci", + "license": "MIT" +} diff --git a/patci_tcp_server.js b/patci_tcp_server.js new file mode 100755 index 0000000..45d4822 --- /dev/null +++ b/patci_tcp_server.js @@ -0,0 +1,29 @@ +var net = require('net'); +var uuid = require('node-uuid'); +var fs = require('fs'); +var request = require('superagent'); + +var server = net.createServer(function(socket) { + socket.on('data', function(data) { + var writeStream = fs.createWriteStream(__dirname + '/lib/' + uuid.v1() + '.txt'); + writeStream.write(data); + console.log('unique file has been saved!'); + writeStream.end(); + socket.end(); + socket.on('end', function(data) { + console.log('socket closed'); + }); + }); + }); + +server.listen('3000', function() { + console.log('server up on port 3000'); + request.get('http://localhost:3000') + .end(function(err, res){}); +}); + +module.exports = server; + + + + diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..d91d565 --- /dev/null +++ b/test/test.js @@ -0,0 +1,17 @@ +var server = require(__dirname + '/../patci_tcp_server'); +var chai = require('chai'); +var fs = require('fs'); + +var writeStream = server.writeStream; + + +describe('the write stream function', function() { + + before(function(done) { + fs.readFile(writeStream, function(err){}) + done(); + }); + it('should save a .txt file', function (done) { + expect(writeStream).to.exist; + }) +})