UNPKG

reblend-routing

Version:

Reblend route pattern matcher

115 lines (114 loc) 2.73 kB
/*! * 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;