swaf/src/types/Express.d.ts

54 lines
1.2 KiB
TypeScript

import {Files} from "formidable";
import {Type} from "../Utils";
import Middleware from "../Middleware";
import {FlashMessages} from "../components/SessionComponent";
import {Logger} from "tslog";
import {Session, SessionData} from "express-session";
import {PasswordAuthProofSessionData} from "../auth/password/PasswordAuthProof";
declare global {
namespace Express {
export interface Request {
log: Logger;
getSession(): Session & Partial<SessionData>;
getSessionOptional(): Session & Partial<SessionData> | undefined;
files: Files;
middlewares: Middleware[];
as<M extends Middleware>(type: Type<M>): M;
flash(): FlashMessages;
flash(message: string): unknown[];
flash(event: string, message: unknown): void;
}
export interface Response {
redirectBack(defaultUrl?: string): void;
}
}
}
declare module 'express-session' {
interface SessionData {
id?: string;
previousUrl?: string;
is_authenticated?: boolean;
auth_password_proof?: PasswordAuthProofSessionData;
csrf?: string;
}
}