express-enrouten
Advanced tools
Comparing version 0.1.0 to 0.2.0
@@ -0,1 +1,8 @@ | ||
##### v0.2.0 - 20140127 | ||
**Bugs** | ||
- n/a | ||
**Features** | ||
- Modification to implementation, potentially causing side-effects (hence the version bump). | ||
##### v0.1.0 - 20131209 | ||
@@ -2,0 +9,0 @@ **Bugs** |
37
index.js
@@ -23,4 +23,3 @@ /*───────────────────────────────────────────────────────────────────────────*\ | ||
assert = require('assert'), | ||
express = require('express'), | ||
suer; | ||
express = require('express'); | ||
@@ -76,5 +75,3 @@ | ||
function scan(settings) { | ||
settings = settings || {}; | ||
function scan(app, settings) { | ||
if (settings.index) { | ||
@@ -102,4 +99,30 @@ require(resolve(settings.index))(app); | ||
function legacy(app) { | ||
return scan.bind(null, app); | ||
} | ||
function mount(settings) { | ||
return function onmount(app) { | ||
// Remove sacrificial express app | ||
app.stack.pop(); | ||
// Reorganize stack to place router in correct place | ||
// This could get out of whack if someone registers | ||
// directly against express prior to calling enrouten | ||
app.stack.some(function (middleware, idx, stack) { | ||
if (middleware.handle.name === 'router') { | ||
stack.splice(idx, 1); | ||
stack.push(middleware); | ||
return true; | ||
} | ||
return false; | ||
}); | ||
scan(app, settings); | ||
}; | ||
} | ||
if (isExpress(app)) { | ||
return { withRoutes: scan }; | ||
console.warn('This API has been deprecated and will be removed in future versions. Use `app.use(enrouten(options))`.'); | ||
return { withRoutes: legacy(app) }; | ||
} | ||
@@ -109,4 +132,4 @@ | ||
app = express(); | ||
scan(settings); | ||
app.once('mount', mount(settings)); | ||
return app; | ||
}; |
{ | ||
"name": "express-enrouten", | ||
"version": "0.1.0", | ||
"version": "0.2.0", | ||
"description": "An express route initialization and configuration module.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
express-enrouten | ||
================== | ||
Route configuration middleware for expressjs. | ||
[![Build Status](https://travis-ci.org/paypal/express-enrouten.png)](https://travis-ci.org/paypal/express-enrouten) | ||
### API | ||
@@ -15,3 +17,3 @@ #### `app.use(enrouten(options))` | ||
var app = express(); | ||
express.use(enrouten({ ... }); | ||
app.use(enrouten({ ... }); | ||
``` | ||
@@ -18,0 +20,0 @@ |
18726
10
146
115