- Remove
Object.setPrototypeOf
polyfill - Use
Array.flat
instead ofarray-flatten
package - Replace
methods
dependency with standard library
- Drop support for node <18
- deps: path-to-regexp@^8.0.0
- Drop support for partial capture group
router.route('/user(s?)/:user/:op')
but still have optional non-capture/user{s}/:user/:op
:name?
becomes{:name}
:name*
becomes*name
.- The splat change also changes splat from strings to an array of strings
- Optional splats become
{*name}
:name+
becomes*name
and thus equivalent to*name
so I dropped those tests- Strings as regular expressions are fully removed, need to be converted to native regular expressions
- Drop support for partial capture group
This incorporates all changes after 1.3.5 up to 1.3.8.
- Add support for returned, rejected Promises to
router.param
This incorporates all changes after 1.3.3 up to 1.3.5.
- Internalize private
router.process_params
method - Remove
debug
dependency - deps: [email protected]
- deps: parseurl@~1.3.3
- deps: [email protected]
- Add new
?
,*
, and+
parameter modifiers. - Matching group expressions are only RegExp syntax.
(*)
is no longer valid and must be written as(.*)
, for example. - Named matching groups no longer available by position in
req.params
./:foo(.*)
only captures asreq.params.foo
and not available asreq.params[0]
. - Regular expressions can only be used in a matching group.
/\\d+
is no longer valid and must be written as/(\\d+)
. - Matching groups are now literal regular expressions.
:foo
named captures can no longer be included inside a capture group. - Special
*
path segment behavior removed./foo/*/bar
will match a literal*
as the middle segment.
- Add new
- deps: [email protected]
- Add basic support for returned, rejected Promises
- Rejected Promises from middleware functions
next(error)
- Rejected Promises from middleware functions
- Drop support for Node.js below 0.10
- deps: [email protected]
- Add
DEBUG_HIDE_DATE
environment variable - Change timer to per-namespace instead of global
- Change non-TTY date format
- Remove
DEBUG_FD
environment variable support - Support 256 namespace colors
- Add
- Fix routing requests without method
- Fix hanging on large stack of sync routes
- Fix handling very large stacks of sync middleware
- deps: [email protected]
- Fix incorrect middleware execution with unanchored
RegExp
s - perf: use plain object for internal method map
- deps: [email protected]
- deps: parseurl@~1.3.3
- deps: [email protected]
- Fix JSDoc for
Router
constructor
- deps: [email protected]
- deps: parseurl@~1.3.2
- perf: reduce overhead for full URLs
- perf: unroll the "fast-path"
RegExp
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- Fix
DEBUG_MAX_ARRAY_LENGTH
- deps: [email protected]
- Fix
- Add
next("router")
to exit from router - Fix case where
router.use
skipped requests routes did not - Use
%o
in path debug to tell types apart - deps: [email protected]
- perf: add fast match path for
*
route
- Skip routing when
req.url
is not set - deps: [email protected]
- Allow colors in workers
- Deprecated
DEBUG_FD
environment variable set to3
or higher - Fix error when running under React Native
- Use same color for same namespace
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- Fix using fallback even when native method exists
- deps: [email protected]
- deps: methods@~1.1.2
- perf: enable strict mode
- deps: parseurl@~1.3.1
- perf: enable strict mode
- Fix infinite loop condition using
mergeParams: true
- Fix inner numeric indices incorrectly altering parent
req.params
- deps: [email protected]
- perf: enable strict mode
- deps: [email protected]
- Fix regression with escaped round brackets and matching groups
- Fix hiding platform issues with
decodeURIComponent
- Only
URIError
s are a 400
- Only
- Fix using
*
before params in routes - Fix using capture groups before params in routes
- deps: [email protected]
- perf: enable strict mode
- perf: remove argument reassignments in routing
- perf: skip attempting to decode zero length string
- perf: use plain for loops
- Fix issue where
next('route')
inrouter.param
would incorrectly skip values - deps: [email protected]
- deps: debug@~2.2.0
- deps: [email protected]
- Use
setprototypeof
instead of__proto__
- deps: debug@~2.1.3
- Fix high intensity foreground color for bold
- deps: [email protected]
- Fix crash from error within
OPTIONS
response handler - deps: [email protected]
- Remove redundant code path
- Fix duplicate methods appearing in OPTIONS responses
- Fix OPTIONS responses to include the HEAD method properly
- Remove support for leading colon in
router.param(name, fn)
- Use
array-flatten
for flattening arrays - deps: debug@~2.1.1
- deps: methods@~1.1.1
- Match routes iteratively to prevent stack overflows
- Initial release ported from Express 4.x
- Altered to work without Express