reblend-routing
Version:
Reblend route pattern matcher
115 lines (114 loc) • 2.73 kB
TypeScript
/*!
* express
* Copyright(c) 2009-2013 TJ Holowaychuk
* Copyright(c) 2013 Roman Shtylman
* Copyright(c) 2014-2015 Douglas Christopher Wilson
* Copyright(c) 2024 Emmanuel Paul Elom
* MIT Licensed
*/
/**
* Module dependencies.
* @private
*/
import Route from './Route';
import Layer from './layer';
import IAny from '../IAny';
interface RouterOptions {
caseSensitive?: boolean;
mergeParams?: boolean;
strict?: boolean;
}
/**
* Initialize a new `Router` with the given `options`.
*
* @param {Object} [options]
* @return {Router} which is a callable function
* @public
*/
interface Router {
(req: any, res: any, next: any): void;
params: Record<string, any[]>;
_params: any[];
caseSensitive: boolean;
mergeParams: boolean;
strict: boolean;
stack: any[];
param(name: string | Function, fn: Function): Router;
handle(req: any, res: any, out: any): void;
use(fn: Function | string, ...fns: Function[]): Router;
route(path: string): Route;
[method: string]: any;
}
declare class Router {
constructor(options: RouterOptions);
/**
* Process any parameters for the layer.
* @private
*/
private process_params;
/**
* Append methods to a list of methods.
*
* @param {Array} list
* @param {Array} addition
* @private
*/
appendMethods(list: any[], addition: string | any[]): void;
/**
* Get get protocol + host for a URL.
*
* @param {string} url
* @private
*/
getProtohost(url: string): string | undefined;
/**
* Get type for error message.
*
* @param {Mixed} thing
* @return {String}
* @private
*/
gettype(thing: any): string;
/**
* Merge params with parent params
*
* @param {Object} params
* @param {Object} parent
* @return {Object} merged params
* @private
*/
mergeParamsFn(params: any[], parent: any): IAny;
/**
* Restore obj props after function.
*
* @param {Object} obj
* @param {String} prop
* @param {Mixed} val
* @return {Function}
* @private
*/
restore(fn: Function, obj: {
[x: string]: any;
}, ..._properties: any[]): (err?: any) => any;
/**
* Wrap a function
*
* @param {function} old
* @param {function} fn
* @return {function}
* @private
*/
wrap(old: (err?: any) => any, fn: {
(old: any, err: any): any;
apply?: any;
}): (this: any) => void;
/**
* Match path to a layer.
*
* @param {Layer} layer
* @param {string} path
* @private
*/
matchLayer(layer: Layer, path: string): unknown;
}
export default Router;