Files
payload/src/express/admin.ts
Elliot DeNolf 90ba15f9bd feat: testing refactor (e2e/int) (#748)
Co-authored-by: James <james@trbl.design>
Co-authored-by: Dan Ribbens <dan.ribbens@gmail.com>
2022-07-13 11:00:10 -07:00

36 lines
1.0 KiB
TypeScript

import express from 'express';
import compression from 'compression';
import history from 'connect-history-api-fallback';
import path from 'path';
import initWebpack from '../webpack/init';
import { Payload } from '../index';
const router = express.Router();
function initAdmin(ctx: Payload): void {
if (!ctx.config.admin.disable) {
router.use(history());
if (process.env.NODE_ENV === 'production') {
router.get('*', (req, res, next) => {
if (req.path.substr(-1) === '/' && req.path.length > 1) {
const query = req.url.slice(req.path.length);
res.redirect(301, req.path.slice(0, -1) + query);
} else {
next();
}
});
router.use(compression(ctx.config.express.compression));
router.use(express.static(path.resolve(process.cwd(), 'build'), { redirect: false }));
ctx.express.use(ctx.config.routes.admin, router);
} else {
ctx.express.use(ctx.config.routes.admin, history());
ctx.express.use(initWebpack(ctx.config));
}
}
}
export default initAdmin;