You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.4 KiB
93 lines
3.4 KiB
// 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. |
|
*/ |
|
declare function createServer(): createServer.Server; |
|
|
|
declare namespace createServer { |
|
export type ServerHandle = HandleFunction | http.Server; |
|
|
|
export class IncomingMessage extends http.IncomingMessage { |
|
originalUrl?: http.IncomingMessage["url"] | undefined; |
|
} |
|
|
|
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_. |
|
*/ |
|
use(fn: NextHandleFunction): Server; |
|
use(fn: HandleFunction): Server; |
|
use(route: string, fn: NextHandleFunction): Server; |
|
use(route: string, fn: HandleFunction): Server; |
|
|
|
/** |
|
* Handle server requests, punting them down |
|
* the middleware stack. |
|
*/ |
|
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); |
|
*/ |
|
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;
|
|
|