@paroicms/server
Version:
The ParoiCMS server
40 lines • 1.68 kB
JavaScript
import { siteReadyGuard } from "../../graphql/graphql.types.js";
import { authGuard } from "../auth/auth.helper.js";
import { checkRateLimit } from "./naive-rate-limiter.js";
const validLogLevels = new Set(["error", "warn", "info", "trace", "debug"]);
export const loggingResolvers = {
Mutation: {
saveLog: async (_parent, { lines }, { siteContext, httpContext }) => {
const payload = authGuard(httpContext);
siteReadyGuard(siteContext);
const sessionId = payload.id;
checkRateLimit(sessionId);
for (const line of lines) {
if (!validLogLevels.has(line.level)) {
siteContext.logger.warn(`[Admin-UI] Invalid log level: ${line.level}`);
continue;
}
const prefixedMessage = `[Admin-UI] ${line.message}`;
switch (line.level) {
case "error":
siteContext.logger.error(prefixedMessage);
break;
case "warn":
siteContext.logger.warn(prefixedMessage);
break;
case "info":
siteContext.logger.info(prefixedMessage);
break;
case "trace":
siteContext.logger.trace(prefixedMessage);
break;
case "debug":
siteContext.logger.debug(prefixedMessage);
break;
}
}
return true;
},
},
};
//# sourceMappingURL=logging.resolver.js.map