Skip to content

Commit bd0cea3

Browse files
committed
Refactoring our middleware
* inlines our sendImage function * renames routes/avatars to routes/index
1 parent 43d6884 commit bd0cea3

File tree

4 files changed

+17
-21
lines changed

4 files changed

+17
-21
lines changed

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import routes from './routes/avatars';
1+
import routes from './routes';
22

33
export default routes;
44
(module as any).exports = routes;

src/routes/common.ts

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

src/routes/avatars.ts renamed to src/routes/index.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,19 @@ import Router from 'express';
22
import uuid from 'uuid';
33

44
import { allNames, pathFor } from '../lib/imageFiles';
5-
import common from './common';
65
import { combine } from '../lib/imager';
76
import potato from '../lib/potato';
87

98
const partTypes = ['eyes', 'nose', 'mouth'];
109

1110
const router = Router();
1211

12+
const sendImage = ({ stdout, response }) => {
13+
response.setHeader('Expires', new Date(Date.now() + 604800000));
14+
response.setHeader('Content-Type', 'image/png');
15+
stdout.pipe(response);
16+
};
17+
1318
router.param('id', (req, res, next, id) => {
1419
const faceParts = potato.parts(id);
1520
// @ts-ignore
@@ -32,16 +37,16 @@ router.get('/:size?/random', (req, res) => {
3237
// @ts-ignore
3338
req.faceParts = faceParts;
3439

35-
return combine(faceParts, req.params.size, (err, stdout) => {
36-
return common.sendImage(err, stdout, req, res);
37-
});
40+
return combine(faceParts, req.params.size, (err, stdout) =>
41+
sendImage({ stdout, response: res }),
42+
);
3843
});
3944

4045
router.get('/:size?/:id', (req, res, next) => {
4146
// @ts-ignore
42-
return combine(req.faceParts, req.params.size, (err, stdout) => {
43-
return common.sendImage(err, stdout, req, res, next);
44-
});
47+
return combine(req.faceParts, req.params.size, (err, stdout) =>
48+
sendImage({ stdout, response: res }),
49+
);
4550
});
4651

4752
router.get('/face/:eyes/:nose/:mouth/:color/:size?', (req, res, next) => {
@@ -63,9 +68,9 @@ router.get('/face/:eyes/:nose/:mouth/:color/:size?', (req, res, next) => {
6368
faceParts[type] = pathFor(type, fileName);
6469
});
6570

66-
return combine(faceParts, req.params.size, (err, stdout) => {
67-
return common.sendImage(err, stdout, req, res, next);
68-
});
71+
return combine(faceParts, req.params.size, (err, stdout) =>
72+
sendImage({ stdout, response: res }),
73+
);
6974
});
7075

7176
export default router;

test/server.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import express from 'express';
22
import path from 'path';
33
import favicon from 'serve-favicon';
44

5-
import avatarsRoutes from '../src/routes/avatars';
5+
import avatarsRoutes from '../src/routes';
66

77
const app = express();
88
const port = Number(process.env.PORT) || 3002;

0 commit comments

Comments
 (0)