diff --git a/types/koa-router/index.d.ts b/types/koa-router/index.d.ts index 1ade4b135b..193efd25ae 100644 --- a/types/koa-router/index.d.ts +++ b/types/koa-router/index.d.ts @@ -1,6 +1,8 @@ // Type definitions for koa-router v7.x -// Project: https://github.com/alexmingoia/koa-router/ -// Definitions by: Jerry Chin , Pavel Ivanov +// Project: https://github.com/alexmingoia/koa-router#readme +// Definitions by: Jerry Chin +// Pavel Ivanov +// 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, opts?: ILayerOptions); - constructor(path: string | RegExp, methods: string[], middleware: Router.IMiddleware, opts?: Layer.ILayerOptions); - constructor(path: string | RegExp, methods: string[], middleware: Array, 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; + stack: Array; /** * 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; /** diff --git a/types/koa-router/koa-router-tests.ts b/types/koa-router/koa-router-tests.ts index bbd525897c..1325da0de0 100644 --- a/types/koa-router/koa-router-tests.ts +++ b/types/koa-router/koa-router-tests.ts @@ -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());