]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/controllers/themes.ts
WIP plugins: add plugin settings/uninstall in client
[github/Chocobozzz/PeerTube.git] / server / controllers / themes.ts
CommitLineData
345da516 1import * as express from 'express'
345da516
C
2import { join } from 'path'
3import { RegisteredPlugin } from '../lib/plugins/plugin-manager'
345da516
C
4import { serveThemeCSSValidator } from '../middlewares/validators/themes'
5
6const themesRouter = express.Router()
7
ffb321be 8themesRouter.get('/:themeName/:themeVersion/css/:staticEndpoint(*)',
345da516
C
9 serveThemeCSSValidator,
10 serveThemeCSSDirectory
11)
12
13// ---------------------------------------------------------------------------
14
15export {
16 themesRouter
17}
18
19// ---------------------------------------------------------------------------
20
21function 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}