Skip to content

Commit d8524d7

Browse files
author
Guilherme Oenning
committed
huge code and test refactor +coverage
1 parent 468a883 commit d8524d7

39 files changed

+379
-447
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,18 @@ html
5454

5555
When visiting `localhost:8080`, you should see this.
5656

57-
![](/examples/images/example0.png)
57+
![](/images/example0.png)
5858

59-
See [examples/express.js](/examples/express.js) for more examples.
59+
See [tests/servers/<your web framework>](/tests/servers) for more examples.
6060

61-
![](/examples/images/example1.png)
62-
![](/examples/images/example2.png)
61+
![](/images/example1.png)
62+
![](/images/example2.png)
6363

6464
# Want to help?
6565

6666
Things to do:
6767

68-
- Refactor/Remove TODO comments
68+
- Refactor/Remove TODO comments
6969
- transform testcases into runnable examples (npm run example)
7070
- storing of client timings on first result postback (there's a todo in the `results` function about where to do this)
7171
- document more things

examples/express.js

Lines changed: 0 additions & 71 deletions
This file was deleted.

examples/hapi.js

Lines changed: 0 additions & 27 deletions
This file was deleted.

examples/http.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

examples/koa.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

examples/views/home.pug

Lines changed: 0 additions & 4 deletions
This file was deleted.

examples/views/layout.pug

Lines changed: 0 additions & 7 deletions
This file was deleted.

lib/middlewares/express.js

Lines changed: 10 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,16 @@
1-
module.exports = function(f, profiler) {
2-
if(!f) f = function() { return true; };
1+
module.exports = function(f, handleRequest) {
32
return function(req, res, next) {
4-
profiler.configure();
53
var enabled = f(req, res);
64

7-
if(req.path.startsWith(profiler.resourcePath)) {
8-
if (!enabled) {
9-
res.setHeader('Content-Type', 'text/plain; charset=utf-8');
10-
res.writeHead(404);
11-
res.end('MiniProfiler is disabled');
12-
return;
13-
}
5+
var respondWith = (res, result) => {
6+
res.writeHead(result.status, { 'Content-Type': result.type });
7+
res.end(result.body);
8+
};
149

15-
var sp = req.path.split('/');
16-
var reqPath = sp[sp.length - 1];
17-
18-
if(reqPath == 'results')
19-
profiler.results(req, res, (result) => {
20-
res.setHeader('Content-Type', result.type);
21-
res.writeHead(result.status);
22-
res.end(result.body);
23-
});
24-
else
25-
profiler.static(reqPath, res, (result) => {
26-
res.setHeader('Content-Type', result.type);
27-
res.writeHead(result.status);
28-
res.end(result.body);
29-
});
30-
return;
31-
}
32-
var id = profiler.startProfiling(req, enabled);
10+
handleRequest(enabled, req, res, respondWith).then((handled) => {
11+
if (!handled)
12+
next();
3313

34-
//res.locals.miniprofiler = enabled ? req.miniprofiler : {
35-
// include: function() { return ''; }
36-
//};
37-
38-
if (enabled) {
39-
res.on('finish', function() {
40-
profiler.stopProfiling(req);
41-
});
42-
res.setHeader('X-MiniProfiler-Ids', `["${id}"]`);
43-
}
44-
next();
14+
}).catch(next);
4515
};
46-
};
16+
};

lib/middlewares/hapi.js

Lines changed: 14 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,20 @@
1-
module.exports = function(f, profiler) {
2-
if(!f) f = function() { return true; };
3-
var plugin = {
4-
register: function(server, options, next) {
5-
server.ext('onRequest', function(request, reply) {
6-
7-
profiler.configure();
8-
var enabled = f(request.raw.req, request.raw.res);
9-
10-
request.raw.req.path = request.path;
11-
if(request.path.startsWith(profiler.resourcePath)) {
12-
if (!enabled) {
13-
request.raw.res.setHeader('Content-Type', 'text/plain; charset=utf-8');
14-
request.raw.res.writeHead(404);
15-
request.raw.res.end('MiniProfiler is disabled');
16-
return;
17-
}
18-
19-
var sp = request.path.split('/');
20-
var reqPath = sp[sp.length - 1];
21-
if(reqPath == 'results')
22-
profiler.results(request.raw.req, request.raw.res, (result) => {
23-
return reply(result.body).type(result.type).code(result.status);
24-
});
25-
else
26-
profiler.static(reqPath, request.raw.res, (result) => {
27-
return reply(result.body).type(result.type).code(result.status);
28-
});
29-
return;
30-
}
31-
var id = profiler.startProfiling(request.raw.req, enabled);
32-
33-
//res.locals.miniprofiler = enabled ? req.miniprofiler : {
34-
// include: function() { return ''; }
35-
//};
1+
var onHapiRequest = function(f, handleRequest, request, reply) {
2+
var enabled = f(request.raw.req, request.raw.res);
363

37-
if (enabled) {
38-
request.raw.res.on('finish', function() {
39-
profiler.stopProfiling(request.raw.req);
40-
});
41-
request.raw.res.setHeader('X-MiniProfiler-Ids', `["${id}"]`);
42-
}
43-
44-
return reply.continue();
4+
var respondWith = (res, result) => {
5+
reply(result.body).type(result.type).code(result.status);
6+
};
457

46-
});
8+
handleRequest(enabled, request.raw.req, request.raw.res, respondWith).then((handled) => {
9+
if (!handled)
10+
reply.continue();
11+
});
12+
};
4713

14+
module.exports = function(f, handleRequest) {
15+
var plugin = {
16+
register: (server, options, next) => {
17+
server.ext('onRequest', onHapiRequest.bind(null, f, handleRequest));
4818
next();
4919
}
5020
};

lib/middlewares/http.js

Lines changed: 0 additions & 47 deletions
This file was deleted.

0 commit comments

Comments
 (0)