@kitbag/router 0.20.7 → 0.20.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,7 +12,7 @@ import { RouterReject } from './routerReject';
12
12
  import { RouterPlugin } from './routerPlugin';
13
13
  import { KeysOfUnion, MaybePromise } from './utilities';
14
14
  import { RoutesName } from './routesMap';
15
- import { AfterRouteHookResponse, BeforeRouteHookResponse, RegisteredRouterReject } from '../main';
15
+ import { AfterRouteHookResponse, BeforeRouteHookResponse } from '../main';
16
16
  import { CallbackContextAbort } from '../services/createCallbackContext';
17
17
  /**
18
18
  * Options to initialize a {@link Router} instance.
@@ -100,27 +100,27 @@ export type Router<TRoutes extends Routes = any, TOptions extends RouterOptions
100
100
  /**
101
101
  * Registers a hook to be called before a route is entered.
102
102
  */
103
- onBeforeRouteEnter: AddRouterBeforeRouteHook<TRoutes | TPlugin['routes']>;
103
+ onBeforeRouteEnter: AddRouterBeforeRouteHook<TRoutes | TPlugin['routes'], keyof TOptions['rejections'] | KeysOfUnion<TPlugin['rejections']>>;
104
104
  /**
105
105
  * Registers a hook to be called before a route is left.
106
106
  */
107
- onBeforeRouteLeave: AddRouterBeforeRouteHook<TRoutes | TPlugin['routes']>;
107
+ onBeforeRouteLeave: AddRouterBeforeRouteHook<TRoutes | TPlugin['routes'], keyof TOptions['rejections'] | KeysOfUnion<TPlugin['rejections']>>;
108
108
  /**
109
109
  * Registers a hook to be called before a route is updated.
110
110
  */
111
- onBeforeRouteUpdate: AddRouterBeforeRouteHook<TRoutes | TPlugin['routes']>;
111
+ onBeforeRouteUpdate: AddRouterBeforeRouteHook<TRoutes | TPlugin['routes'], keyof TOptions['rejections'] | KeysOfUnion<TPlugin['rejections']>>;
112
112
  /**
113
113
  * Registers a hook to be called after a route is entered.
114
114
  */
115
- onAfterRouteEnter: AddRouterAfterRouteHook<TRoutes | TPlugin['routes']>;
115
+ onAfterRouteEnter: AddRouterAfterRouteHook<TRoutes | TPlugin['routes'], keyof TOptions['rejections'] | KeysOfUnion<TPlugin['rejections']>>;
116
116
  /**
117
117
  * Registers a hook to be called after a route is left.
118
118
  */
119
- onAfterRouteLeave: AddRouterAfterRouteHook<TRoutes | TPlugin['routes']>;
119
+ onAfterRouteLeave: AddRouterAfterRouteHook<TRoutes | TPlugin['routes'], keyof TOptions['rejections'] | KeysOfUnion<TPlugin['rejections']>>;
120
120
  /**
121
121
  * Registers a hook to be called after a route is updated.
122
122
  */
123
- onAfterRouteUpdate: AddRouterAfterRouteHook<TRoutes | TPlugin['routes']>;
123
+ onAfterRouteUpdate: AddRouterAfterRouteHook<TRoutes | TPlugin['routes'], keyof TOptions['rejections'] | KeysOfUnion<TPlugin['rejections']>>;
124
124
  /**
125
125
  * Given a URL, returns true if host does not match host stored on router instance
126
126
  */
@@ -148,24 +148,24 @@ export type Router<TRoutes extends Routes = any, TOptions extends RouterOptions
148
148
  */
149
149
  key: InjectionKey<Router<TRoutes, TOptions, TPlugin>>;
150
150
  };
151
- type RouterHookContext<TRoutes extends Routes> = {
151
+ type RouterHookContext<TRoutes extends Routes, TRejections extends PropertyKey> = {
152
152
  from: RouterResolvedRouteUnion<TRoutes> | null;
153
- reject: RegisteredRouterReject;
153
+ reject: RouterReject<TRejections>;
154
154
  push: RouterPush<TRoutes>;
155
155
  replace: RouterReplace<TRoutes>;
156
156
  };
157
- type RouterBeforeRouteHookContext<TRoutes extends Routes> = RouterHookContext<TRoutes> & {
157
+ type RouterBeforeRouteHookContext<TRoutes extends Routes, TRejections extends PropertyKey> = RouterHookContext<TRoutes, TRejections> & {
158
158
  abort: CallbackContextAbort;
159
159
  };
160
160
  export type HookContext<TRoutes extends Routes> = {
161
161
  to: RouterResolvedRouteUnion<TRoutes>;
162
162
  from: RouterResolvedRouteUnion<TRoutes> | null;
163
163
  };
164
- export type RouterBeforeRouteHook<TRoutes extends Routes> = (to: RouterResolvedRouteUnion<TRoutes>, context: RouterBeforeRouteHookContext<TRoutes>) => MaybePromise<void>;
165
- export type AddRouterBeforeRouteHook<TRoutes extends Routes> = (hook: RouterBeforeRouteHook<TRoutes>) => RouteHookRemove;
166
- type RouterAfterRouteHookContext<TRoutes extends Routes> = RouterHookContext<TRoutes>;
167
- export type RouterAfterRouteHook<TRoutes extends Routes> = (to: RouterResolvedRouteUnion<TRoutes>, context: RouterAfterRouteHookContext<TRoutes>) => MaybePromise<void>;
168
- export type AddRouterAfterRouteHook<TRoutes extends Routes> = (hook: RouterAfterRouteHook<TRoutes>) => RouteHookRemove;
164
+ export type RouterBeforeRouteHook<TRoutes extends Routes, TRejections extends PropertyKey> = (to: RouterResolvedRouteUnion<TRoutes>, context: RouterBeforeRouteHookContext<TRoutes, TRejections>) => MaybePromise<void>;
165
+ export type AddRouterBeforeRouteHook<TRoutes extends Routes, TRejections extends PropertyKey> = (hook: RouterBeforeRouteHook<TRoutes, TRejections>) => RouteHookRemove;
166
+ type RouterAfterRouteHookContext<TRoutes extends Routes, TRejections extends PropertyKey> = RouterHookContext<TRoutes, TRejections>;
167
+ export type RouterAfterRouteHook<TRoutes extends Routes, TRejections extends PropertyKey> = (to: RouterResolvedRouteUnion<TRoutes>, context: RouterAfterRouteHookContext<TRoutes, TRejections>) => MaybePromise<void>;
168
+ export type AddRouterAfterRouteHook<TRoutes extends Routes, TRejections extends PropertyKey> = (hook: RouterAfterRouteHook<TRoutes, TRejections>) => RouteHookRemove;
169
169
  export type RouterRouteHookBeforeRunner<TRoutes extends Routes> = (context: HookContext<TRoutes>) => Promise<BeforeRouteHookResponse>;
170
170
  export type RouterRouteHookAfterRunner<TRoutes extends Routes> = (context: HookContext<TRoutes>) => Promise<AfterRouteHookResponse>;
171
171
  /**
@@ -181,5 +181,6 @@ type RouterResolvedRouteUnion<TRoutes extends Routes> = {
181
181
  [K in keyof TRoutes]: ResolvedRoute<TRoutes[K]>;
182
182
  }[number];
183
183
  export type RouterRoutes<TRouter extends Router> = TRouter extends Router<infer TRoutes extends Routes> ? TRoutes : Routes;
184
+ export type RouterRejections<TRouter extends Router> = TRouter extends Router<any, infer TOptions extends RouterOptions, infer TPlugins extends RouterPlugin> ? keyof TOptions['rejections'] | KeysOfUnion<TPlugins['rejections']> : PropertyKey;
184
185
  export type RouterRouteName<TRouter extends Router> = TRouter extends Router<infer TRoutes extends Routes> ? RoutesName<TRoutes> : RoutesName<Route[]>;
185
186
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kitbag/router",
3
3
  "private": false,
4
- "version": "0.20.7",
4
+ "version": "0.20.8",
5
5
  "bugs": {
6
6
  "url": "https://github.com/kitbagjs/router/issues"
7
7
  },
@@ -43,9 +43,9 @@
43
43
  "@kitbag/eslint-config": "1.0.2",
44
44
  "@vitejs/plugin-vue": "^6.0.1",
45
45
  "@vue/test-utils": "^2.4.6",
46
- "eslint": "^9.38.0",
47
- "globals": "^16.4.0",
48
- "happy-dom": "^20.0.7",
46
+ "eslint": "^9.39.1",
47
+ "globals": "^16.5.0",
48
+ "happy-dom": "^20.0.8",
49
49
  "typedoc": "^0.28.14",
50
50
  "typedoc-plugin-markdown": "^4.9.0",
51
51
  "typedoc-vitepress-theme": "^1.1.2",
@@ -54,7 +54,7 @@
54
54
  "vite": "^7.1.12",
55
55
  "vite-plugin-dts": "^4.5.4",
56
56
  "vitepress": "^1.6.4",
57
- "vitest": "^3.2.4",
57
+ "vitest": "^4.0.4",
58
58
  "vue-tsc": "^3.1.2"
59
59
  },
60
60
  "peerDependencies": {