Support multiple plugins

This commit is contained in:
jinhui.li
2025-06-15 16:58:11 +08:00
parent 9a89250d79
commit 5e70bc70c0
4 changed files with 12 additions and 173 deletions

View File

@@ -131,15 +131,14 @@ async function run(options: RunOptions = {}) {
req.config = config;
next();
});
server.useMiddleware(rewriteBody);
if (
config.Router?.background &&
config.Router?.think &&
config?.Router?.longContext
) {
log("Using custom router middleware");
server.useMiddleware(router);
}
server.useMiddleware(rewriteBody);
server.useMiddleware(formatRequest);
server.app.post("/v1/messages", async (req, res) => {

View File

@@ -28,16 +28,18 @@ export const rewriteBody = async (
res: Response,
next: NextFunction
) => {
if (!process.env.usePlugin) {
if (!req.config.usePlugins) {
return next();
}
const pluginPath = path.join(PLUGINS_DIR, `${process.env.usePlugin}.js`);
try {
await access(pluginPath);
const rewritePlugin = require(pluginPath);
rewritePlugin(req, res, next);
} catch (e) {
console.error(e);
next();
for (const plugin of req.config.usePlugins) {
const pluginPath = path.join(PLUGINS_DIR, `${plugin.trim()}.js`);
try {
await access(pluginPath);
const rewritePlugin = require(pluginPath);
await rewritePlugin(req, res);
} catch (e) {
console.error(e);
}
}
next();
};