@foal/core
Version:
Full-featured Node.js framework, with no complexity
111 lines (110 loc) • 3.28 kB
TypeScript
import { FileList } from '../../common/file';
import { Session } from '../../sessions';
interface Readable {
[name: string]: any;
}
interface IncomingMessage extends Readable {
aborted: boolean;
complete: boolean;
headers: any;
httpVersion: string;
method?: string;
rawHeaders: string[];
rawTrailers: string[];
socket: any;
statusCode?: number;
statusMessage?: number;
trailers: any;
url?: string;
destroy(err?: any): void;
setTimeout(msecs: number, callback: Function): this;
}
/**
* Express Request interface.
*
* @export
* @interface Request
*/
export interface Request extends IncomingMessage {
app: any;
baseUrl: string;
body: any;
cookies: any;
fresh: boolean;
hostname: string;
ip: string;
ips: string[];
method: string;
originalUrl: string;
params: any;
path: string;
procotol: 'http' | 'https';
query: any;
route: any;
secure: boolean;
signedCookies: any;
stale: boolean;
subdomains: string[];
xhr: boolean;
url: string;
id: string;
accepts(): string[];
accepts(types: string | string[]): string | false;
accepts(...types: string[]): string | false;
acceptsCharsets(): string[];
acceptsCharsets(charset: string | string[]): string | false;
acceptsCharsets(...charset: string[]): string | false;
acceptsEncodings(): string[];
acceptsEncodings(encoding: string | string[]): string | false;
acceptsEncodings(...encoding: string[]): string | false;
acceptsLanguages(): string[];
acceptsLanguages(lang: string | string[]): string | false;
acceptsLanguages(...lang: string[]): string | false;
get(field: 'set-cookie'): string[] | undefined;
get(field: string): string | undefined;
header(field: 'set-cookie'): string[] | undefined;
header(field: string): string | undefined;
is(type: string | string[]): string | false | null;
/**
* @deprecated
*/
param(name: string, defaultValue?: any): any;
range(size: number, options?: {
combine?: boolean;
}): -1 | -2 | any[] | undefined;
}
/**
* Class instantiated on each request. It includes:
* - the express request object,
* - the user object if available,
* - the session object if available,
* - a file list object,
* - the name of the controller and the name of the method,
* - and a `state` object that can be used to pass data across several hooks.
*
* @export
* @class Context
* @template User
*/
export declare class Context<User = {
[key: string]: any;
} | null, ContextState extends {
[key: string]: any;
} = {}> {
readonly request: Request;
session: Session | null;
user: User;
readonly state: ContextState;
readonly files: FileList;
readonly controllerName: string;
readonly controllerMethodName: string;
/**
* Creates an instance of Context.
* @param {*} request - Either the express request object or a mock (for testing).
* @param {string} [controllerName=''] - The name of the controller.
* @param {string} [controllerMethodName=''] - The name of the method.
* @memberof Context
*/
constructor(request: any, controllerName?: string, controllerMethodName?: string);
}
export {};