Merge pull request #26288 from JounQin/fix/koa-router

[koa-router] fix: move declarations into Router namespace
This commit is contained in:
Nathan Shively-Sanders
2018-06-20 08:59:08 -07:00
committed by GitHub
2 changed files with 61 additions and 65 deletions

View File

@@ -1,6 +1,8 @@
// Type definitions for koa-router v7.x
// Project: https://github.com/alexmingoia/koa-router/
// Definitions by: Jerry Chin <https://github.com/hellopao>, Pavel Ivanov <https://github.com/schfkt>
// Project: https://github.com/alexmingoia/koa-router#readme
// Definitions by: Jerry Chin <https://github.com/hellopao>
// Pavel Ivanov <https://github.com/schfkt>
// JounQin <https://github.com/JounQin>
// Definitions: https://github.com/hellopao/DefinitelyTyped
// TypeScript Version: 2.3
@@ -20,18 +22,7 @@ declare module "koa" {
}
}
declare module Layer {
export interface ILayerOptions {
name: string;
sensitive?: boolean;
strict?: boolean;
}
}
declare module Router {
declare namespace Router {
export interface IRouterOptions {
/**
* Prefix for all routes.
@@ -85,68 +76,70 @@ declare module Router {
methodNotAllowed?: () => any;
}
}
export interface ILayerOptions {
name: string;
sensitive?: boolean;
strict?: boolean;
}
declare class ParamName {
asterisk: boolean;
delimiter: string;
name: string;
optional: boolean;
partial: boolean;
pattern: string;
prefix: string;
repeat: string;
}
export class ParamName {
asterisk: boolean;
delimiter: string;
name: string;
optional: boolean;
partial: boolean;
pattern: string;
prefix: string;
repeat: string;
}
declare class Layer {
export class Layer {
opts: ILayerOptions;
name: string;
methods: string[];
paramNames: ParamName[];
stack: Router.IMiddleware[];
regexp: RegExp;
path: string;
opts: Layer.ILayerOptions;
name: string;
methods: string[];
paramNames: ParamName[];
stack: Router.IMiddleware[];
regexp: RegExp;
path: string;
constructor(path: string | RegExp, methods: string[], middleware: Router.IMiddleware, opts?: ILayerOptions);
constructor(path: string | RegExp, methods: string[], middleware: Array<Router.IMiddleware>, opts?: ILayerOptions);
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 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 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[];
/**
* Returns array of regexp url path captures.
*/
captures(path: string): string[];
/**
* Generate URL for route using given `params`.
*/
url(params: Object): 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;
/**
* Run validations on route named parameters.
*/
param(param: string, fn: Router.IMiddleware): Layer;
/**
* Prefix route path.
*/
setPrefix(prefix: string): Layer;
/**
* Prefix route path.
*/
setPrefix(prefix: string): Layer;
}
}
declare class Router {
params: Object;
stack: Array<Layer>;
stack: Array<Router.Layer>;
/**
* Create a new router.
@@ -249,12 +242,12 @@ declare class Router {
/**
* Create and register a route.
*/
register(path: string | RegExp, methods: string[], middleware: Router.IMiddleware, opts?: Object): Layer;
register(path: string | RegExp, methods: string[], middleware: Router.IMiddleware, opts?: Object): Router.Layer;
/**
* Lookup route with given `name`.
*/
route(name: string): Layer;
route(name: string): Router.Layer;
route(name: string): boolean;
/**

View File

@@ -28,6 +28,9 @@ router.get('user', '/users/:id', function (ctx) {
ctx.body = "sdsd";
});
let layer: Router.Layer
let layerOptions: Router.ILayerOptions
app.use(router.routes());
app.use(router.allowedMethods());