| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- var fs = require('fs');
 
- var protocols = {
 
-   http  : require('http'),
 
-   https : require('https')
 
- }
 
- var keys = {
 
-   cert : fs.readFileSync(__dirname + '/keys/ssl.cert'),
 
-   key  : fs.readFileSync(__dirname + '/keys/ssl.key')
 
- }
 
- var helpers = {};
 
- helpers.server = function(opts, cb) {
 
-   var defaults = {
 
-     code    : 200,
 
-     headers : {'Content-Type': 'application/json'}
 
-   }
 
-   var mirror_response = function(req) {
 
-     return JSON.stringify({
 
-       headers: req.headers,
 
-       body: req.body
 
-     })
 
-   }
 
-   var get = function(what) {
 
-     if (!opts[what])
 
-       return defaults[what];
 
-   
 
-     if (typeof opts[what] == 'function')
 
-       return opts[what](); // set them at runtime
 
-     else
 
-       return opts[what];
 
-   }
 
-   var finish = function(req, res) {
 
-     if (opts.handler) return opts.handler(req, res);
 
-     res.writeHead(get('code'), get('headers'));
 
-     res.end(opts.response || mirror_response(req));
 
-   }
 
-   var handler = function(req, res) {
 
-     req.setEncoding('utf8'); // get as string
 
-     req.body = '';
 
-     req.on('data', function(str) { req.body += str })
 
-     req.socket.on('error', function(e) { 
 
-       // res.writeHead(500, {'Content-Type': 'text/plain'});
 
-       // res.end('Error: ' + e.message);
 
-     })
 
-     setTimeout(function(){
 
-       finish(req, res);
 
-     }, opts.wait || 0);
 
-   };
 
-   var protocol = opts.protocol || 'http';
 
-   var server;
 
-   if (protocol == 'https')
 
-     server = protocols[protocol].createServer(keys, handler);
 
-   else
 
-     server = protocols[protocol].createServer(handler);
 
-   server.listen(opts.port, cb);
 
-   return server;
 
- }
 
- module.exports = helpers;
 
 
  |