prsm/packages/express-session-auth/src/util.ts
2024-08-28 09:06:17 -04:00

24 lines
739 B
TypeScript

import express from "express";
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
export const isValidEmail = (email: string) => emailRegex.test(email);
const isMiddlewareUsed = (app: express.Application, name: string) =>
!!app._router.stack.filter(
(layer: { handle: { name: string } }) =>
layer && layer.handle && layer.handle.name === name,
).length;
export const ensureRequiredMiddlewares = (app: express.Application) => {
const requiredMiddlewares = ["cookieParser", "session"];
for (const name of requiredMiddlewares) {
if (!isMiddlewareUsed(app, name)) {
throw new Error(
`Required middleware '${name}' not found. Please ensure it is added to your express application.`,
);
}
}
};