3 * Copyright(c) 2010 Sencha Inc.
4 * Copyright(c) 2011 TJ Holowaychuk
12 var deprecate = require('depd')('connect');
13 var EventEmitter = require('events').EventEmitter
14 , proto = require('./proto')
15 , utils = require('./utils')
16 , path = require('path')
17 , basename = path.basename
19 var merge = require('utils-merge');
25 // expose createServer() as the module
27 exports = module.exports = createServer;
33 exports.version = require('../package').version;
39 exports.mime = require('./middleware/static').mime;
42 * Expose the prototype.
45 exports.proto = proto;
48 * Auto-load middleware getters.
51 exports.middleware = {};
57 exports.utils = utils;
60 * Create a new connect server.
66 function createServer() {
67 function app(req, res, next){ app.handle(req, res, next); }
69 merge(app, EventEmitter.prototype);
73 if (arguments.length !== 0) {
74 deprecate('connect(middleware): use app.use(middleware) instead');
77 for (var i = 0; i < arguments.length; ++i) {
78 app.use(arguments[i]);
85 * Support old `.createServer()` method.
88 createServer.createServer = deprecate.function(createServer,
89 'createServer(): use connect() instead');
92 * Auto-load bundled middleware with getters.
95 fs.readdirSync(__dirname + '/middleware').forEach(function(filename){
96 if (!/\.js$/.test(filename)) return;
97 var name = basename(filename, '.js');
98 function load(){ return require('./middleware/' + name); }
99 exports.middleware.__defineGetter__(name, load);
100 exports.__defineGetter__(name, load);