HISTORY

2.2.0 / 2025-03-26

  • Remove setImmediate support check

  • Restore debug dependency

2.1.0 / 2025-02-10

  • Updated engines field to Node@18 or higher

  • Remove Object.setPrototypeOf polyfill

  • Use Array.flat instead of array-flatten package

  • Replace methods dependency with standard library

  • deps: parseurl@^1.3.3

  • deps: is-promise@^4.0.0

  • Replace utils-merge dependency with Object.assign

  • deps: Remove unused dep after

2.0.0 / 2024-09-09

  • 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

2.0.0-beta.2 / 2024-03-20

This incorporates all changes after 1.3.5 up to 1.3.8.

  • Add support for returned, rejected Promises to router.param

2.0.0-beta.1 / 2020-03-29

This incorporates all changes after 1.3.3 up to 1.3.5.

  • Internalize private router.process_params method

  • Remove debug dependency

  • deps: array-flatten@3.0.0

  • deps: parseurl@~1.3.3

  • deps: path-to-regexp@3.2.0

    • 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 as req.params.foo and not available as req.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.

  • deps: setprototypeof@1.2.0

2.0.0-alpha.1 / 2018-07-27

  • Add basic support for returned, rejected Promises

    • Rejected Promises from middleware functions next(error)

  • Drop support for Node.js below 0.10

  • deps: debug@3.1.0

    • 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

1.3.8 / 2023-02-24

  • Fix routing requests without method

1.3.7 / 2022-04-28

  • Fix hanging on large stack of sync routes

1.3.6 / 2021-11-15

  • Fix handling very large stacks of sync middleware

  • deps: safe-buffer@5.2.1

1.3.5 / 2020-03-24

  • Fix incorrect middleware execution with unanchored RegExps

  • perf: use plain object for internal method map

1.3.4 / 2020-01-24

  • deps: array-flatten@3.0.0

  • deps: parseurl@~1.3.3

  • deps: setprototypeof@1.2.0

1.3.3 / 2018-07-06

  • Fix JSDoc for Router constructor

1.3.2 / 2017-09-24

  • deps: debug@2.6.9

  • deps: parseurl@~1.3.2

    • perf: reduce overhead for full URLs

    • perf: unroll the "fast-path" RegExp

  • deps: setprototypeof@1.1.0

  • deps: utils-merge@1.0.1

1.3.1 / 2017-05-19

  • deps: debug@2.6.8

    • Fix DEBUG_MAX_ARRAY_LENGTH

    • deps: ms@2.0.0

1.3.0 / 2017-02-25

  • 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: setprototypeof@1.0.3

  • perf: add fast match path for * route

1.2.0 / 2017-02-17

  • Skip routing when req.url is not set

  • deps: debug@2.6.1

    • Allow colors in workers

    • Deprecated DEBUG_FD environment variable set to 3 or higher

    • Fix error when running under React Native

    • Use same color for same namespace

    • deps: ms@0.7.2

1.1.5 / 2017-01-28

  • deps: array-flatten@2.1.1

  • deps: setprototypeof@1.0.2

    • Fix using fallback even when native method exists

1.1.4 / 2016-01-21

  • deps: array-flatten@2.0.0

  • deps: methods@~1.1.2

    • perf: enable strict mode

  • deps: parseurl@~1.3.1

    • perf: enable strict mode

1.1.3 / 2015-08-02

  • Fix infinite loop condition using mergeParams: true

  • Fix inner numeric indices incorrectly altering parent req.params

  • deps: array-flatten@1.1.1

    • perf: enable strict mode

  • deps: path-to-regexp@0.1.7

    • Fix regression with escaped round brackets and matching groups

1.1.2 / 2015-07-06

  • Fix hiding platform issues with decodeURIComponent

    • Only URIErrors are a 400

  • Fix using * before params in routes

  • Fix using capture groups before params in routes

  • deps: path-to-regexp@0.1.6

  • perf: enable strict mode

  • perf: remove argument reassignments in routing

  • perf: skip attempting to decode zero length string

  • perf: use plain for loops

1.1.1 / 2015-05-25

  • Fix issue where next('route') in router.param would incorrectly skip values

  • deps: array-flatten@1.1.0

  • deps: debug@~2.2.0

    • deps: ms@0.7.1

1.1.0 / 2015-04-22

  • Use setprototypeof instead of __proto__

  • deps: debug@~2.1.3

    • Fix high intensity foreground color for bold

    • deps: ms@0.7.0

1.0.0 / 2015-01-13

  • Fix crash from error within OPTIONS response handler

  • deps: array-flatten@1.0.2

    • Remove redundant code path

1.0.0-beta.3 / 2015-01-11

  • 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

1.0.0-beta.2 / 2014-11-19

  • Match routes iteratively to prevent stack overflows

1.0.0-beta.1 / 2014-11-16

  • Initial release ported from Express 4.x

    • Altered to work without Express

Last updated