- Last updated: 2024-07-02T12:48:17Z
- Generator: thi.ng/monopub
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.
4.1.0 (2024-07-02)
- update HTMLRouter initial & default route handling (8ea075e)
- avoid duplicate dispatch (and breaking back button) for missing routes
- new behavior: HTMLRouter dispatches default route redirect, but does not push it to history
- update initial route handling to use
replaceState()
instead ofpushState()
4.0.11 (2024-06-21)
- enforce uniform naming convention of internal functions (56992b2)
4.0.8 (2024-04-20)
- update type usage (835dfb0)
4.0.1 (2024-03-13)
- update/simplify AugmentedRoute handling (37ae88b)
4.0.0 (2024-03-13)
- trie-based route matching & wildcard support (f1ab427)
- BREAKING CHANGES: update types, args, rename option fields
- add
Trie
data structure for route storage & matching - add support for
+
wildcards to match arbitrary length routes - update
BasicRouter.route()
& replace.matchRoutes()
with new impl - add
AugmentedRoute
interface & pre-process routes to compute wildcard indices for faster matching (along with using the trie) - update
Route.match
to be initially specified as string - update
RouteMatch
to include.rest
args (if any) - add optional
RouteMatch.redirect
flag - REMOVE
Route.title
&RouteMatch.title
(obsolete since only used byHTMLRouter
, but usage unsupported by browsers now (history.pushState()
doesn't support title anymore) - RENAME
RouterConfig
=>RouterOpts
(align naming convention) - RENAME
RouterOpts.defaultRouteID
=>RouterOpts.default
- RENAME
RouterOpts.initialRouteID
=>RouterOpts.initial
- RENAME
RouterOpts.removeTrailingSlash
=>RouterOpts.trim
- REMOVE obsolete
defMatch()
helper - add/update tests
- add
- rename BasicRouter => Router (4d14aab)
- BREAKING CHANGE: rename BasicRouter => Router
- update all refs
- update RouteAuthenticator and .route() args (f009afb)
- add support for optional arbitrary user context object passed to .route() and global auth handler
- update optional args for HTMLRouter.route()/.routeTo()
- update/improve wildcard priority handling (59c2557)
- implement wildcard fallback logic in
Trie.get()
- add docs
- add tests
- implement wildcard fallback logic in
3.4.0 (2024-03-10)
- add defMatch() helper (12134b6)
- rebuild index in updateRoutes() (deb494e)
3.3.0 (2024-03-09)
- sort & validate routes, add tests (9243c01)
3.2.39 (2023-11-09)
- update all tests (packages A-S) (e3085e4)
3.2.30 (2023-08-04)
3.2.14 (2022-11-28)
- update INotify.notify() signature (066bae5)
3.2.0 (2022-06-17)
- add trailing slash option, optimize routeForID() (c003dc2)
- update BasicRouter default config init
- pre-build
routeIndex
in ctor - optimize
routeForID()
to use newrouteIndex
- update format(), hash/prefix handling (724b3ad)
- update HTMLRouter default prefix to "#/" if
useFragment
is true - remove obsolete
HTMLRouter.format()
(now the same as BasicRouter) - update BasicRouter.format() to throw error for missing route param value
- update HTMLRouter default prefix to "#/" if
3.1.5 (2022-04-07)
- replace deprecated .substr() w/ .substring() (0710509)
3.1.0 (2021-11-17)
- Using workspaces for local tools (bf7a404)
Improving the overall build ergonomics
- introduced a tools workspaces
- imported it in all needed packages/examples
- inclusive project root
- testrunner to binary (4ebbbb2) this commit reverts (partly) changes made in: ef346d7a8753590dc9094108a3d861a8dbd5dd2c overall purpose is better testament ergonomics: instead of having to pass NODE_OPTIONS with every invocation having a binary to handle this for us.
3.0.1 (2021-10-13)
- update imports in all pkgs (5fa2b6f)
- add .js suffix for all relative imports
- update imports in all tests/pkgs (effd591)
3.0.0 (2021-10-12)
- major update of ALL pkgs (export maps, ESM only) (0d1d6ea)
- BREAKING CHANGE: discontinue CommonJS & UMD versions
- only ESM modules will be published from now on
- CJS obsolete due to ESM support in recent versions of node:
- i.e. launch NodeJS via:
node --experimental-specifier-resolution=node --experimental-repl-await
- in the node REPL use
await import(...)
instead ofrequire()
- UMD obsolete due to widespread browser support for ESM Also:
- normalize/restructure/reorg all package.json files
- cleanup all build scripts, remove obsolete
- switch from mocha to @thi.ng/testament for all tests
- update all tests in all pkgs (8b582bc)
- update all to use @thi.ng/testament
- update imports (138571a)
- update deps & imports in various pkgs (e1cf29e)
- largely related to recent updates/restructuring of these packages:
- api
- defmulti
- errors
- logger
- largely related to recent updates/restructuring of these packages:
2.0.54 (2021-09-03)
- fix up TS4.4 changes (04a93a6)
2.0.36 (2020-12-07)
- update type-only imports in various tests/pkgs (3fd9c24)
2.0.33 (2020-09-22)
- extract matchRoutes() (d5917ec)
2.0.31 (2020-09-13)
- update imports (22cf5c6)
2.0.10 (2020-02-25)
- update imports, internal restruct (bb2d60e)
2.0.0 (2019-07-07)
- address TS strictNullChecks, update types, add checks (c7ff9a4)
- BREAKING CHANGE: Route & RouteMatch IDs MUST be strings now
- update config fields from PropertyKey => string
- add initial & default route checks in ctor
- enable TS strict compiler flags (refactor) (d3ecae3)
1.0.5 (2019-03-10)
- re-use type aliases from @thi.ng/api (0d2fdff)
1.0.0 (2019-01-21)
- update package build scripts & outputs, imports in ~50 packages (b54b703)
- BREAKING CHANGE: enabled multi-outputs (ES6 modules, CJS, UMD)
- build scripts now first build ES6 modules in package root, then call
scripts/bundle-module
to build minified CJS & UMD bundles in/lib
- all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols.
- build scripts now first build ES6 modules in package root, then call
0.1.28 (2018-11-13)
- update Route, RouteMatch & minor optimizations (1d085bf)
0.1.20 (2018-08-01)
- TS3.0 PropertyKey handling (2ecd538)
0.1.11 (2018-05-10)
- update deps & imports in all packages due to @thi.ng/api split (bc45636)
0.1.1 (2018-03-21)
- update INotify dummy impl (b328780)
- reflecting INotify updates in @thi.ng/api
- update error handling (adc559a)
0.1.0 (2018-03-11)
- re-import router package (MBP2010), minor refactor & fixes (07b4e06)