swaf/src/types/Express.d.ts

66 lines
1.5 KiB
TypeScript
Raw Normal View History

import {Session, SessionData} from "express-session";
import {Files} from "formidable";
import {PasswordAuthProofSessionData} from "../auth/password/PasswordAuthProof.js";
import {FlashMessages} from "../components/SessionComponent.js";
import Middleware from "../Middleware.js";
import {Type} from "../Utils.js";
2020-04-22 15:52:17 +02:00
declare global {
namespace Express {
export interface Request {
getSession(): Session & Partial<SessionData>;
getSessionOptional(): Session & Partial<SessionData> | undefined;
2020-06-14 21:47:18 +02:00
files: Files;
2020-04-22 15:52:17 +02:00
middlewares: Middleware[];
as<M extends Middleware>(type: Type<M>): M;
flash(): FlashMessages;
2020-04-22 15:52:17 +02:00
flash(message: string): unknown[];
2020-04-22 15:52:17 +02:00
flash(event: string, message: unknown): void;
2020-04-22 15:52:17 +02:00
getPreviousUrl(): string | null;
getIntendedUrl(): string | null;
}
export interface Response {
setLazyLocal(key: string, valueProvider: () => unknown): void;
formatViewData(
viewName: string,
data?: Record<string, unknown>,
callback?: (err: Error, html: string) => void,
): void;
}
2020-04-22 15:52:17 +02:00
}
}
declare module 'express-session' {
interface SessionData {
id?: string;
previousUrl?: string;
wantsSessionPersistence?: boolean;
persistent?: boolean;
isAuthenticated?: boolean;
authPasswordProof?: PasswordAuthProofSessionData;
csrf?: string;
}
}