mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-23 04:49:15 +08:00
# Conflicts: # amcharts/AmCharts.d.ts # angular-gettext/angular-gettext.d.ts # angular-jwt/angular-jwt.d.ts # angular-material/angular-material.d.ts # angularjs/angular.d.ts # auth0-js/auth0-js.d.ts # aws-lambda/aws-lambda.d.ts # aws-sdk/aws-sdk.d.ts # azure-mobile-apps/azure-mobile-apps.d.ts # azure-mobile-services-client/AzureMobileServicesClient.d.ts # blessed/blessed-tests.ts # blessed/blessed.d.ts # bootbox/bootbox.d.ts # bowser/bowser.d.ts # cache-manager/cache-manager.d.ts # chai-things/chai-things.d.ts # colors/colors.d.ts # cordova/cordova-tests.ts # cordova/plugins/Contacts.d.ts # cordova/plugins/FileSystem.d.ts # couchbase/couchbase.d.ts # cucumber/cucumber-tests.ts # cucumber/cucumber.d.ts # d3/d3.d.ts # dojo/dojo.d.ts # dustjs-linkedin/dustjs-linkedin.d.ts # esprima/esprima.d.ts # express-serve-static-core/express-serve-static-core.d.ts # express-session/express-session.d.ts # fetch-mock/fetch-mock.d.ts # fs-extra/fs-extra.d.ts # fullCalendar/fullCalendar.d.ts # github-electron/github-electron.d.ts # gulp-uglify/gulp-uglify.d.ts # gulp/gulp.d.ts # highcharts/highcharts.d.ts # imap/imap.d.ts # incremental-dom/incremental-dom.d.ts # inversify/inversify.d.ts # ionic/ionic.d.ts # ioredis/ioredis.d.ts # isomorphic-fetch/isomorphic-fetch-tests.ts # jake/jake.d.ts # joi/joi.d.ts # jquery-mockjax/jquery-mockjax.d.ts # jquery/jquery.d.ts # js-data-http/js-data-http-tests.ts # js-data-http/js-data-http.d.ts # js-data/js-data.d.ts # jsdom/jsdom.d.ts # jsts/jsts-tests.ts # knex/knex.d.ts # koa-favicon/koa-favicon.d.ts # koa-router/koa-router-tests.ts # koa-router/koa-router.d.ts # lodash/lodash.d.ts # mailparser/mailparser.d.ts # maquette/maquette.d.ts # material-ui/material-ui.d.ts # matter-js/matter-js.d.ts # moment/moment.d.ts # mongoose-promise/mongoose-promise-tests.ts # mongoose/mongoose-tests.ts # mongoose/mongoose.d.ts # multer/multer.d.ts # ncp/ncp.d.ts # nock/nock.d.ts # node/node-tests.ts # node/node.d.ts # nvd3/nvd3.d.ts # object-assign/object-assign.d.ts # openlayers/openlayers.d.ts # parse/parse.d.ts # pdf/pdf.d.ts # pdfkit/pdfkit.d.ts # pg/pg.d.ts # pixi.js/pixi.js.d.ts # progress/progress.d.ts # pusher-js/pusher-js.d.ts # quill/quill-tests.ts # quill/quill.d.ts # radium/radium.d.ts # ravenjs/ravenjs-tests.ts # react-dropzone/react-dropzone.d.ts # react-mdl/react-mdl.d.ts # react-native/react-native.d.ts # react-notification-system/react-notification-system.d.ts # react-router/history-tests.ts # react-router/react-router-tests.tsx # react-router/react-router.d.ts # react-select/react-select-tests.tsx # react-select/react-select.d.ts # react/react.d.ts # redux-form/redux-form.d.ts # request-promise/request-promise.d.ts # resolve-from/resolve-from.d.ts # riot-api-nodejs/riot-api-nodejs.d.ts # sanitize-html/sanitize-html.d.ts # segment-analytics/segment-analytics.d.ts # simple-assign/simple-assign-tests.ts # simple-assign/simple-assign.d.ts # slate-irc/slate-irc.d.ts # soap/soap.d.ts # socket.io/socket.io.d.ts # sql.js/sql.js-tests.ts # sql.js/sql.js.d.ts # steam/steam.d.ts # stylus/stylus.d.ts # swiper/swiper.d.ts # tedious/tedious.d.ts # threejs/three.d.ts # twilio/twilio.d.ts # underscore/underscore.d.ts # ws/ws.d.ts # yeoman-generator/yeoman-generator.d.ts
256 lines
7.2 KiB
TypeScript
256 lines
7.2 KiB
TypeScript
// Type definitions for koa-router v7.x
|
|
// Project: https://github.com/alexmingoia/koa-router/
|
|
// Definitions by: Jerry Chin <https://github.com/hellopao/>
|
|
// Definitions: https://github.com/hellopao/DefinitelyTyped
|
|
|
|
/* =================== USAGE ===================
|
|
|
|
import * as Router from "koa-router";
|
|
var router = new Router();
|
|
|
|
=============================================== */
|
|
|
|
|
|
import * as Koa from "koa";
|
|
|
|
declare module Layer {
|
|
|
|
export interface ILayerOptions {
|
|
name: string;
|
|
sensitive?: boolean;
|
|
strict?: boolean;
|
|
}
|
|
|
|
}
|
|
|
|
declare module Router {
|
|
|
|
export interface IRouterOptions {
|
|
/**
|
|
* Router prefixes
|
|
*/
|
|
prefix?: string;
|
|
/**
|
|
* HTTP verbs
|
|
*/
|
|
methods?: string[];
|
|
routerPath?: string;
|
|
sensitive?: boolean;
|
|
}
|
|
|
|
export interface IRouterContext extends Koa.Context {
|
|
/**
|
|
* url params
|
|
*/
|
|
params: any;
|
|
}
|
|
|
|
export interface IMiddleware {
|
|
(ctx: Router.IRouterContext, next: () => Promise<any>): any;
|
|
}
|
|
|
|
export interface IParamMiddleware {
|
|
(param: string, ctx: Router.IRouterContext, next: () => Promise<any>): any;
|
|
}
|
|
|
|
export interface IRouterAllowedMethodsOptions {
|
|
/**
|
|
* throw error instead of setting status and header
|
|
*/
|
|
throw?: boolean;
|
|
/**
|
|
* throw the returned value in place of the default NotImplemented error
|
|
*/
|
|
notImplemented?: () => any;
|
|
/**
|
|
* throw the returned value in place of the default MethodNotAllowed error
|
|
*/
|
|
methodNotAllowed?: () => any;
|
|
}
|
|
|
|
}
|
|
|
|
declare class Layer {
|
|
|
|
opts: Layer.ILayerOptions;
|
|
name: string;
|
|
methods: string[];
|
|
paramNames: string[];
|
|
stack: Router.IMiddleware[];
|
|
regexp: RegExp;
|
|
path: string;
|
|
|
|
constructor(path: string | RegExp, methods: string[], middleware: Router.IMiddleware, opts?: Layer.ILayerOptions);
|
|
constructor(path: string | RegExp, methods: string[], middleware: Array<Router.IMiddleware>, opts?: Layer.ILayerOptions);
|
|
|
|
/**
|
|
* Returns whether request `path` matches route.
|
|
*/
|
|
match(path: string): boolean;
|
|
|
|
/**
|
|
* Returns map of URL parameters for given `path` and `paramNames`.
|
|
*/
|
|
params(path: string | RegExp, captures: string[], existingParams?: Object): Object;
|
|
|
|
/**
|
|
* Returns array of regexp url path captures.
|
|
*/
|
|
captures(path: string): string[];
|
|
|
|
/**
|
|
* Generate URL for route using given `params`.
|
|
*/
|
|
url(params: Object): string;
|
|
|
|
/**
|
|
* Run validations on route named parameters.
|
|
*/
|
|
param(param: string, fn: Router.IMiddleware): Layer;
|
|
|
|
/**
|
|
* Prefix route path.
|
|
*/
|
|
setPrefix(prefix: string): Layer;
|
|
}
|
|
|
|
declare class Router {
|
|
|
|
params: Object;
|
|
|
|
stack: Array<Layer>;
|
|
|
|
/**
|
|
* Create a new router.
|
|
*/
|
|
constructor(opt?: Router.IRouterOptions);
|
|
|
|
/**
|
|
* Use given middleware.
|
|
*
|
|
* Middleware run in the order they are defined by `.use()`. They are invoked
|
|
* sequentially, requests start at the first middleware and work their way
|
|
* "down" the middleware stack.
|
|
*/
|
|
use(...middleware: Array<Router.IMiddleware>): Router;
|
|
use(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* HTTP get method
|
|
*/
|
|
get(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
get(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* HTTP post method
|
|
*/
|
|
post(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
post(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* HTTP put method
|
|
*/
|
|
put(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
put(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* HTTP delete method
|
|
*/
|
|
delete(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
delete(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* Alias for `router.delete()` because delete is a reserved word
|
|
*/
|
|
del(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
del(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* HTTP head method
|
|
*/
|
|
head(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
head(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* HTTP options method
|
|
*/
|
|
options(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
options(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* HTTP path method
|
|
*/
|
|
patch(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
patch(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* Register route with all methods.
|
|
*/
|
|
all(name: string, path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
all(path: string | RegExp, ...middleware: Array<Router.IMiddleware>): Router;
|
|
|
|
/**
|
|
* Set the path prefix for a Router instance that was already initialized.
|
|
*/
|
|
prefix(prefix: string): Router;
|
|
|
|
/**
|
|
* Returns router middleware which dispatches a route matching the request.
|
|
*/
|
|
routes(): Router.IMiddleware;
|
|
|
|
/**
|
|
* Returns router middleware which dispatches a route matching the request.
|
|
*/
|
|
middlewares(): Router.IMiddleware;
|
|
|
|
/**
|
|
* Returns separate middleware for responding to `OPTIONS` requests with
|
|
* an `Allow` header containing the allowed methods, as well as responding
|
|
* with `405 Method Not Allowed` and `501 Not Implemented` as appropriate.
|
|
*/
|
|
allowedMethods(options?: Router.IRouterAllowedMethodsOptions): Router.IMiddleware;
|
|
|
|
/**
|
|
* Redirect `source` to `destination` URL with optional 30x status `code`.
|
|
*
|
|
* Both `source` and `destination` can be route names.
|
|
*/
|
|
redirect(source: string, destination: string, code?: number): Router;
|
|
|
|
/**
|
|
* Create and register a route.
|
|
*/
|
|
register(path: string | RegExp, methods: string[], middleware: Router.IMiddleware, opts?: Object): Layer;
|
|
|
|
/**
|
|
* Lookup route with given `name`.
|
|
*/
|
|
route(name: string): Layer;
|
|
route(name: string): boolean;
|
|
|
|
/**
|
|
* Generate URL for route. Takes either map of named `params` or series of
|
|
* arguments (for regular expression routes)
|
|
*/
|
|
url(name: string, params: Object): string;
|
|
url(name: string, params: Object): Error;
|
|
|
|
/**
|
|
* Match given `path` and return corresponding routes.
|
|
*/
|
|
match(name: string, method: string): Object;
|
|
|
|
/**
|
|
* Run middleware for named route parameters. Useful for auto-loading or validation.
|
|
*/
|
|
param(param: string, middleware: Router.IParamMiddleware): Router;
|
|
|
|
/**
|
|
* Generate URL from url pattern and given `params`.
|
|
*/
|
|
static url(path: string | RegExp, params: Object): string;
|
|
}
|
|
|
|
export = Router;
|