mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
This adds a new class IncomingMessage which extends from http.IncomingMessage and adds the originalUrl property which was previously missing. This new class is used for the req parameter in HandleFunction. The originalUrl property is added to req here: https://github.com/senchalabs/connect/blob/3.4.0/index.js#L133
99 lines
3.3 KiB
TypeScript
99 lines
3.3 KiB
TypeScript
// Type definitions for connect v3.4.0
|
|
// Project: https://github.com/senchalabs/connect
|
|
// Definitions by: Maxime LUCE <https://github.com/SomaticIT>
|
|
// Evan Hahn <https://github.com/EvanHahn>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
/// <reference types="node" />
|
|
|
|
|
|
import * as http from "http";
|
|
|
|
/**
|
|
* Create a new connect server.
|
|
* @public
|
|
*/
|
|
declare function createServer(): createServer.Server;
|
|
|
|
declare namespace createServer {
|
|
export type ServerHandle = HandleFunction | http.Server;
|
|
|
|
export class IncomingMessage extends http.IncomingMessage {
|
|
originalUrl?: http.IncomingMessage["url"];
|
|
}
|
|
|
|
type NextFunction = (err?: any) => void;
|
|
|
|
export type SimpleHandleFunction = (req: IncomingMessage, res: http.ServerResponse) => void;
|
|
export type NextHandleFunction = (req: IncomingMessage, res: http.ServerResponse, next: NextFunction) => void;
|
|
export type ErrorHandleFunction = (err: any, req: IncomingMessage, res: http.ServerResponse, next: NextFunction) => void;
|
|
export type HandleFunction = SimpleHandleFunction | NextHandleFunction | ErrorHandleFunction;
|
|
|
|
export interface ServerStackItem {
|
|
route: string;
|
|
handle: ServerHandle;
|
|
}
|
|
|
|
export interface Server extends NodeJS.EventEmitter {
|
|
(req: http.IncomingMessage, res: http.ServerResponse, next?: Function): void;
|
|
|
|
route: string;
|
|
stack: ServerStackItem[];
|
|
|
|
/**
|
|
* Utilize the given middleware `handle` to the given `route`,
|
|
* defaulting to _/_. This "route" is the mount-point for the
|
|
* middleware, when given a value other than _/_ the middleware
|
|
* is only effective when that segment is present in the request's
|
|
* pathname.
|
|
*
|
|
* For example if we were to mount a function at _/admin_, it would
|
|
* be invoked on _/admin_, and _/admin/settings_, however it would
|
|
* not be invoked for _/_, or _/posts_.
|
|
*
|
|
* @public
|
|
*/
|
|
use(fn: HandleFunction): Server;
|
|
use(route: string, fn: HandleFunction): Server;
|
|
|
|
/**
|
|
* Handle server requests, punting them down
|
|
* the middleware stack.
|
|
*
|
|
* @private
|
|
*/
|
|
handle(req: http.IncomingMessage, res: http.ServerResponse, next: Function): void;
|
|
|
|
/**
|
|
* Listen for connections.
|
|
*
|
|
* This method takes the same arguments
|
|
* as node's `http.Server#listen()`.
|
|
*
|
|
* HTTP and HTTPS:
|
|
*
|
|
* If you run your application both as HTTP
|
|
* and HTTPS you may wrap them individually,
|
|
* since your Connect "server" is really just
|
|
* a JavaScript `Function`.
|
|
*
|
|
* var connect = require('connect')
|
|
* , http = require('http')
|
|
* , https = require('https');
|
|
*
|
|
* var app = connect();
|
|
*
|
|
* http.createServer(app).listen(80);
|
|
* https.createServer(options, app).listen(443);
|
|
*
|
|
* @api public
|
|
*/
|
|
listen(port: number, hostname?: string, backlog?: number, callback?: Function): http.Server;
|
|
listen(port: number, hostname?: string, callback?: Function): http.Server;
|
|
listen(path: string, callback?: Function): http.Server;
|
|
listen(handle: any, listeningListener?: Function): http.Server;
|
|
}
|
|
}
|
|
|
|
export = createServer;
|