Skip to content

Commit c2c2623

Browse files
authored
Merge pull request #103 from Dashron/feat/commonMiddlewareFunction
Feat/common middleware function
2 parents dbbc6b1 + 0b5749d commit c2c2623

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

example/ts/src/server.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import { Road, Response, RemoveTrailingSlashMiddleware, CookieMiddleware,
10-
StoreValsMiddleware, ParseBodyMiddleware, RouterMiddleware } from 'roads';
10+
StoreValsMiddleware, ParseBodyMiddleware, RouterMiddleware, attachCommonMiddleware } from 'roads';
1111

1212
import { Server } from 'roads-server';
1313
import addLayout from './middleware/addLayout';
@@ -22,11 +22,9 @@ road.use(function (method, url, body, headers, next) {
2222
return next();
2323
});
2424

25-
road.use(RemoveTrailingSlashMiddleware.middleware);
25+
attachCommonMiddleware(road);
2626
road.use(CookieMiddleware.serverMiddleware);
27-
road.use(StoreValsMiddleware.middleware);
2827
road.use(addLayout);
29-
road.use(ParseBodyMiddleware.middleware);
3028

3129
const router = new RouterMiddleware.Router(road);
3230
applyPublicRotues(router);

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "roads",
3-
"version": "8.0.0-alpha.2",
3+
"version": "8.0.0-alpha.3",
44
"author": {
55
"name": "Aaron Hedges",
66
"email": "[email protected]",

src/index.ts

+19-1
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,32 @@
1+
import Road from './core/road';
2+
13
export { default as Response } from './core/response';
24
export { default as Road } from './core/road';
35
export { default as RoadsPJAX } from './client/pjax';
46
export { default as Request } from './client/request';
57

68
export * as ApplyToContextMiddleware from './middleware/applyToContext';
9+
// This is not part of the common middleware because it uses different middleware depending on client or server
710
export * as CookieMiddleware from './middleware/cookieMiddleware';
11+
// This is not part of the common middleware because it requires configuration
812
export * as CorsMiddleware from './middleware/cors';
913
export * as RemoveTrailingSlashMiddleware from './middleware/removeTrailingSlash';
14+
import * as RemoveTrailingSlashMiddleware from './middleware/removeTrailingSlash';
1015
export * as ParseBodyMiddleware from './middleware/parseBody';
16+
import * as ParseBodyMiddleware from './middleware/parseBody';
17+
// This is not part of the common middleware because it requires configuration
1118
export * as RerouteMiddleware from './middleware/reroute';
1219
export * as StoreValsMiddleware from './middleware/storeVals';
20+
import * as StoreValsMiddleware from './middleware/storeVals';
1321
export * as ModifiedSinceMiddleware from './middleware/modifiedSince';
14-
export * as RouterMiddleware from './middleware/router';
22+
import * as ModifiedSinceMiddleware from './middleware/modifiedSince';
23+
// This is not part of the common middleware because it requires configuration,
24+
// and should happen after all user-provided middleware
25+
export * as RouterMiddleware from './middleware/router';
26+
27+
export function attachCommonMiddleware(road: Road) {
28+
road.use(RemoveTrailingSlashMiddleware.middleware);
29+
road.use(StoreValsMiddleware.middleware);
30+
road.use(ParseBodyMiddleware.middleware);
31+
road.use(ModifiedSinceMiddleware.middleware);
32+
}

todo.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
2. Ensure browserify is entirely gone from all examples
44
3. Document the router request chain
55
4. Document the new context typing
6+
5. Common middleware function
67

78
# Future
89
1. Figure out a way to have better typing on headers

0 commit comments

Comments
 (0)