106 lines · 2.2 KB · JavaScript
RawDownload
 /*! * Connect * Copyright(c) 2010 Sencha Inc. * Copyright(c) 2011 TJ Holowaychuk * MIT Licensed */ /** * Module dependencies. */ var HTTPServer = require('./http').Server  , HTTPSServer = require('./https').Server  , fs = require('fs'); // node patches require('./patch'); // expose createServer() as the module exports = module.exports = createServer; /** * Framework version. */ exports.version = '1.9.2'; /** * Initialize a new `connect.HTTPServer` with the middleware * passed to this function. When an object is passed _first_, * we assume these are the tls options, and return a `connect.HTTPSServer`. * * Examples: * * An example HTTP server, accepting several middleware. * *     var server = connect.createServer( *         connect.logger() *       , connect.static(__dirname + '/public') *     ); * * An HTTPS server, utilizing the same middleware as above. * *     var server = connect.createServer( *         { key: key, cert: cert } *       , connect.logger() *       , connect.static(__dirname + '/public') *     ); * * Alternatively with connect 1.0 we may omit `createServer()`. * *     connect( *         connect.logger() *       , connect.static(__dirname + '/public') *     ).listen(3000); * * @param  {Object|Function} ... * @return {Server} * @api public */ function createServer() {  if ('object' == typeof arguments[0]) {    return new HTTPSServer(arguments[0], Array.prototype.slice.call(arguments, 1));  } else {    return new HTTPServer(Array.prototype.slice.call(arguments));  }}; // support connect.createServer() exports.createServer = createServer; // auto-load getters exports.middleware = {}; /** * Auto-load bundled middleware with getters. */ fs.readdirSync(__dirname + '/middleware').forEach(function(filename){  if (/\.js$/.test(filename)) {    var name = filename.substr(0, filename.lastIndexOf('.'));    exports.middleware.__defineGetter__(name, function(){      return require('./middleware/' + name);    });  }}); // expose utils exports.utils = require('./utils'); // expose getters as first-class exports exports.utils.merge(exports, exports.middleware); // expose constructors exports.HTTPServer = HTTPServer;exports.HTTPSServer = HTTPSServer;