]>
Commit | Line | Data |
---|---|---|
345da516 | 1 | import * as express from 'express' |
345da516 C |
2 | import { join } from 'path' |
3 | import { RegisteredPlugin } from '../lib/plugins/plugin-manager' | |
345da516 C |
4 | import { serveThemeCSSValidator } from '../middlewares/validators/themes' |
5 | ||
6 | const themesRouter = express.Router() | |
7 | ||
ffb321be | 8 | themesRouter.get('/:themeName/:themeVersion/css/:staticEndpoint(*)', |
345da516 C |
9 | serveThemeCSSValidator, |
10 | serveThemeCSSDirectory | |
11 | ) | |
12 | ||
13 | // --------------------------------------------------------------------------- | |
14 | ||
15 | export { | |
16 | themesRouter | |
17 | } | |
18 | ||
19 | // --------------------------------------------------------------------------- | |
20 | ||
21 | function serveThemeCSSDirectory (req: express.Request, res: express.Response) { | |
22 | const plugin: RegisteredPlugin = res.locals.registeredPlugin | |
23 | const staticEndpoint = req.params.staticEndpoint | |
24 | ||
ffb321be C |
25 | if (plugin.css.includes(staticEndpoint) === false) { |
26 | return res.sendStatus(404) | |
27 | } | |
28 | ||
29 | return res.sendFile(join(plugin.path, staticEndpoint)) | |
345da516 | 30 | } |