31 lines
943 B
TypeScript
31 lines
943 B
TypeScript
import { RequestHandler } from "express";
|
|
import { config } from "../config";
|
|
import { getTokenCostUsd, prettyTokens } from "./stats";
|
|
import * as userStore from "./users/user-store";
|
|
|
|
export const injectLocals: RequestHandler = (req, res, next) => {
|
|
// config-related locals
|
|
const quota = config.tokenQuota;
|
|
res.locals.quotasEnabled =
|
|
quota.turbo > 0 || quota.gpt4 > 0 || quota.claude > 0;
|
|
res.locals.quota = quota;
|
|
res.locals.nextQuotaRefresh = userStore.getNextQuotaRefresh();
|
|
res.locals.persistenceEnabled = config.gatekeeperStore !== "memory";
|
|
res.locals.showTokenCosts = config.showTokenCosts;
|
|
res.locals.maxIps = config.maxIpsPerUser;
|
|
|
|
// flash messages
|
|
if (req.session.flash) {
|
|
res.locals.flash = req.session.flash;
|
|
delete req.session.flash;
|
|
} else {
|
|
res.locals.flash = null;
|
|
}
|
|
|
|
// view helpers
|
|
res.locals.prettyTokens = prettyTokens;
|
|
res.locals.tokenCost = getTokenCostUsd;
|
|
|
|
next();
|
|
};
|