UNPKG

1.45 kBJavaScriptView Raw
1
2/*!
3 * Connect
4 * Copyright(c) 2010 Sencha Inc.
5 * Copyright(c) 2011 TJ Holowaychuk
6 * MIT Licensed
7 */
8
9/**
10 * Module dependencies.
11 */
12
13var EventEmitter = require('events').EventEmitter
14 , proto = require('./proto')
15 , utils = require('./utils')
16 , path = require('path')
17 , basename = path.basename
18 , fs = require('fs');
19
20// node patches
21
22require('./patch');
23
24// expose createServer() as the module
25
26exports = module.exports = createServer;
27
28/**
29 * Framework version.
30 */
31
32exports.version = '2.0.3';
33
34/**
35 * Expose the prototype.
36 */
37
38exports.proto = proto;
39
40/**
41 * Auto-load middleware getters.
42 */
43
44exports.middleware = {};
45
46/**
47 * Expose utilities.
48 */
49
50exports.utils = utils;
51
52/**
53 * Create a new connect server.
54 *
55 * @return {Function}
56 * @api public
57 */
58
59function createServer() {
60 function app(req, res){ app.handle(req, res); }
61 utils.merge(app, proto);
62 utils.merge(app, EventEmitter.prototype);
63 app.route = '/';
64 app.stack = [].slice.apply(arguments);
65 return app;
66};
67
68/**
69 * Support old `.createServer()` method.
70 */
71
72createServer.createServer = createServer;
73
74/**
75 * Auto-load bundled middleware with getters.
76 */
77
78fs.readdirSync(__dirname + '/middleware').forEach(function(filename){
79 if (!/\.js$/.test(filename)) return;
80 var name = basename(filename, '.js');
81 function load(){ return require('./middleware/' + name); }
82 exports.middleware.__defineGetter__(name, load);
83 exports.__defineGetter__(name, load);
84});