@akala/core
Version:
50 lines (49 loc) • 1.2 kB
TypeScript
/*!
* router
* Copyright(c) 2013 Roman Shtylman
* Copyright(c) 2014 Douglas Christopher Wilson
* MIT Licensed
*/
/**
* Module dependencies.
* @private
*/
import * as pathRegexp from 'path-to-regexp';
import { Route } from './route';
export interface LayerRegExp extends RegExp {
fast_star?: boolean;
fast_slash?: boolean;
}
export interface LayerOptions {
end?: boolean;
sensitive?: boolean;
mergeParams?: boolean;
strict?: boolean;
length: number;
}
/**
* Expose `Layer`.
*/
export declare class Layer<T extends Function> {
private handler;
name: string;
params: any;
path: string;
protected regexp: LayerRegExp;
keys: pathRegexp.Key[];
private isErrorHandler;
private isRequestHandler;
constructor(path: string, options: LayerOptions, fn: T);
isApplicable<TRoute extends Route<T, this>>(req: any, route: TRoute): boolean;
handle_error(error: any, ...args: any[]): void;
handle_request(...args: any[]): void;
/**
* Check if this route matches `path`, if so
* populate `.params`.
*
* @param {String} path
* @return {Boolean}
* @api private
*/
match(path: string): boolean;
}