html-reporter
Version:
Html-reporter and GUI for viewing and managing results of a tests run. Currently supports Testplane and Hermione.
43 lines • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.initPluginsRoutes = void 0;
const express_1 = require("express");
const http_codes_1 = require("http-codes");
const server_utils_1 = require("../../server-utils");
const initPluginsRoutes = (router, pluginConfig) => {
if (!pluginConfig.pluginsEnabled) {
return router;
}
router.get(`/plugins/:pluginName/plugin.js`, (req, res) => {
if ((0, server_utils_1.isUnexpectedPlugin)(pluginConfig.plugins, req.params.pluginName)) {
res.status(http_codes_1.BAD_REQUEST).send({ error: `Unexpected plugin "${req.params.pluginName}" requested.` });
return;
}
const pluginClientScriptPath = (0, server_utils_1.getPluginClientScriptPath)(req.params.pluginName);
if (!pluginClientScriptPath) {
res.status(http_codes_1.INTERNAL_SERVER_ERROR).send('Plugin client script not found.');
return;
}
res.sendFile(pluginClientScriptPath);
});
(0, server_utils_1.forEachPlugin)(pluginConfig.plugins, pluginName => {
const initPluginMiddleware = (0, server_utils_1.getPluginMiddleware)(pluginName);
if (!initPluginMiddleware) {
return;
}
try {
const pluginRouter = (0, express_1.Router)();
initPluginMiddleware(pluginRouter);
router.use(`/plugin-routes/${pluginName}`, pluginRouter);
}
catch (err) {
(0, server_utils_1.logError)(err);
}
});
router.use('/plugin-routes/:pluginName', (req, res) => {
res.status(http_codes_1.BAD_REQUEST).send({ error: `No middleware is registered for "${req.params.pluginName}".` });
});
return router;
};
exports.initPluginsRoutes = initPluginsRoutes;
//# sourceMappingURL=plugins.js.map