@kitbag/router 0.20.12 → 0.22.0
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.
- package/README.md +38 -87
- package/dist/components/routerLink.d.ts +5 -5
- package/dist/compositions/useLink.d.ts +2 -2
- package/dist/devtools/createRouterDevtools.d.ts +13 -0
- package/dist/devtools/filters.d.ts +12 -0
- package/dist/devtools/getDevtoolsLabel.d.ts +13 -0
- package/dist/devtools/types.d.ts +10 -0
- package/dist/errors/contextAbortError.d.ts +2 -2
- package/dist/errors/contextPushError.d.ts +2 -2
- package/dist/errors/contextRejectionError.d.ts +2 -2
- package/dist/errors/invalidRouteRedirectError.d.ts +11 -0
- package/dist/errors/multipleRouteRedirectsError.d.ts +13 -0
- package/dist/keys.d.ts +1 -3
- package/dist/kitbag-router.js +4927 -1741
- package/dist/kitbag-router.umd.cjs +3 -3
- package/dist/main.d.ts +1 -17
- package/dist/models/hooks.d.ts +12 -0
- package/dist/services/createComponentHooks.d.ts +7 -7
- package/dist/services/createExternalRoute.d.ts +4 -2
- package/dist/services/createPropStore.d.ts +2 -2
- package/dist/services/createRoute.d.ts +3 -1
- package/dist/services/createRouteHooks.d.ts +12 -10
- package/dist/services/createRouteRedirects.d.ts +10 -0
- package/dist/services/createRouterAssets.d.ts +5 -5
- package/dist/services/createRouterCallbackContext.d.ts +8 -6
- package/dist/services/createRouterHooks.d.ts +13 -14
- package/dist/services/createRouterPlugin.d.ts +2 -2
- package/dist/services/getGlobalHooksForRouter.d.ts +2 -3
- package/dist/services/getGlobalRouteHooks.d.ts +3 -3
- package/dist/services/getRouteHooks.d.ts +3 -3
- package/dist/services/hooks.d.ts +2 -2
- package/dist/services/insertBaseRoute.d.ts +2 -2
- package/dist/services/routeMatchRules.d.ts +0 -1
- package/dist/services/routeMatchScore.d.ts +1 -1
- package/dist/services/routeRegex.d.ts +1 -0
- package/dist/services/urlAssembly.d.ts +2 -2
- package/dist/services/urlCombine.d.ts +2 -2
- package/dist/services/urlCreator.d.ts +2 -2
- package/dist/services/urlParser.d.ts +1 -1
- package/dist/types/callbackContext.d.ts +15 -0
- package/dist/types/createRouteOptions.d.ts +6 -13
- package/dist/types/hooks.d.ts +85 -137
- package/dist/types/props.d.ts +8 -8
- package/dist/types/redirects.d.ts +40 -0
- package/dist/types/register.d.ts +1 -41
- package/dist/types/rejection.d.ts +6 -2
- package/dist/types/resolved.d.ts +14 -4
- package/dist/types/route.d.ts +3 -4
- package/dist/types/routeContext.d.ts +11 -5
- package/dist/types/router.d.ts +16 -11
- package/dist/types/routerAbort.d.ts +1 -0
- package/dist/types/routerLink.d.ts +3 -3
- package/dist/types/routerPlugin.d.ts +17 -41
- package/dist/types/routerPush.d.ts +2 -2
- package/dist/types/routerReject.d.ts +2 -2
- package/dist/types/routerReplace.d.ts +2 -2
- package/dist/types/{url.d.ts → urlString.d.ts} +3 -3
- package/dist/types/useLink.d.ts +2 -2
- package/dist/utilities/checkDuplicateParams.spec.d.ts +1 -0
- package/dist/utilities/index.d.ts +1 -1
- package/dist/utilities/isNamedRoute.d.ts +4 -0
- package/dist/utilities/testHelpers.d.ts +722 -22
- package/package.json +10 -8
- package/dist/errors/missingRouteContextError.d.ts +0 -10
- package/dist/models/RouteHooks.d.ts +0 -12
- package/dist/models/RouterRouteHooks.d.ts +0 -10
- package/dist/services/createCallbackContext.d.ts +0 -44
- package/dist/services/getRouteHooksDeprecated.d.ts +0 -10
- package/dist/utilities/checkMissingContext.d.ts +0 -2
- /package/dist/{utilities/checkDuplicateKeys.spec.d.ts → services/createRouteRedirects.spec.d.ts} +0 -0
- /package/dist/{utilities/checkMissingContext.spec copy.d.ts → types/redirects.spec-d.d.ts} +0 -0
- /package/dist/utilities/{checkDuplicateKeys.d.ts → checkDuplicateParams.d.ts} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { PrefetchConfig } from './prefetch';
|
|
2
|
-
import {
|
|
2
|
+
import { UrlString } from './urlString';
|
|
3
3
|
import { ResolvedRoute } from './resolved';
|
|
4
4
|
import { Router } from './router';
|
|
5
5
|
import { RouterPushOptions } from './routerPush';
|
|
6
|
-
export type ToCallback<TRouter extends Router> = (resolve: TRouter['resolve']) => ResolvedRoute |
|
|
6
|
+
export type ToCallback<TRouter extends Router> = (resolve: TRouter['resolve']) => ResolvedRoute | UrlString | undefined;
|
|
7
7
|
export type RouterLinkProps<TRouter extends Router> = RouterPushOptions & {
|
|
8
8
|
/**
|
|
9
9
|
* The url string to navigate to or a callback that returns a url string
|
|
10
10
|
*/
|
|
11
|
-
to:
|
|
11
|
+
to: UrlString | ResolvedRoute | ToCallback<TRouter>;
|
|
12
12
|
/**
|
|
13
13
|
* Determines what assets are prefetched when router-link is rendered for this route. Overrides route level prefetch.
|
|
14
14
|
*/
|
|
@@ -1,43 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { HookRemove } from './hooks';
|
|
2
2
|
import { Routes } from './route';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { RouterRouteHooks } from '../models/RouterRouteHooks';
|
|
3
|
+
import { Rejections } from './rejection';
|
|
4
|
+
import { Hooks } from '../models/hooks';
|
|
6
5
|
import { ResolvedRoute } from './resolved';
|
|
7
6
|
import { RouterReject } from './routerReject';
|
|
8
7
|
import { RouterPush } from './routerPush';
|
|
9
8
|
import { RouterReplace } from './routerReplace';
|
|
10
9
|
import { CallbackContextAbort } from '../services/createRouterCallbackContext';
|
|
10
|
+
import { MaybePromise } from './utilities';
|
|
11
11
|
export type EmptyRouterPlugin = RouterPlugin<[], []>;
|
|
12
|
-
export type CreateRouterPluginOptions<TRoutes extends Routes = Routes, TRejections extends
|
|
12
|
+
export type CreateRouterPluginOptions<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = {
|
|
13
13
|
routes?: TRoutes;
|
|
14
14
|
rejections?: TRejections;
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated use plugin.onBeforeRouteEnter instead
|
|
17
|
-
*/
|
|
18
|
-
onBeforeRouteEnter?: MaybeArray<BeforeRouteHook>;
|
|
19
|
-
/**
|
|
20
|
-
* @deprecated use plugin.onAfterRouteEnter instead
|
|
21
|
-
*/
|
|
22
|
-
onAfterRouteEnter?: MaybeArray<AfterRouteHook>;
|
|
23
|
-
/**
|
|
24
|
-
* @deprecated use plugin.onBeforeRouteUpdate instead
|
|
25
|
-
*/
|
|
26
|
-
onBeforeRouteUpdate?: MaybeArray<BeforeRouteHook>;
|
|
27
|
-
/**
|
|
28
|
-
* @deprecated use plugin.onAfterRouteUpdate instead
|
|
29
|
-
*/
|
|
30
|
-
onAfterRouteUpdate?: MaybeArray<AfterRouteHook>;
|
|
31
|
-
/**
|
|
32
|
-
* @deprecated use plugin.onBeforeRouteLeave instead
|
|
33
|
-
*/
|
|
34
|
-
onBeforeRouteLeave?: MaybeArray<BeforeRouteHook>;
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated use plugin.onAfterRouteLeave instead
|
|
37
|
-
*/
|
|
38
|
-
onAfterRouteLeave?: MaybeArray<AfterRouteHook>;
|
|
39
15
|
};
|
|
40
|
-
export type RouterPlugin<TRoutes extends Routes = Routes, TRejections extends
|
|
16
|
+
export type RouterPlugin<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = {
|
|
41
17
|
/**
|
|
42
18
|
* The routes supplied by the plugin.
|
|
43
19
|
* @internal
|
|
@@ -52,26 +28,26 @@ export type RouterPlugin<TRoutes extends Routes = Routes, TRejections extends Re
|
|
|
52
28
|
* The hooks supplied by the plugin.
|
|
53
29
|
* @internal
|
|
54
30
|
*/
|
|
55
|
-
hooks:
|
|
31
|
+
hooks: Hooks;
|
|
56
32
|
};
|
|
57
|
-
type PluginBeforeRouteHookContext<TRoutes extends Routes, TRejections extends
|
|
33
|
+
type PluginBeforeRouteHookContext<TRoutes extends Routes, TRejections extends Rejections> = {
|
|
58
34
|
from: ResolvedRoute | null;
|
|
59
35
|
reject: RouterReject<TRejections>;
|
|
60
36
|
push: RouterPush<TRoutes>;
|
|
61
37
|
replace: RouterReplace<TRoutes>;
|
|
62
38
|
abort: CallbackContextAbort;
|
|
63
39
|
};
|
|
64
|
-
type PluginAfterRouteHookContext<TRoutes extends Routes, TRejections extends
|
|
40
|
+
type PluginAfterRouteHookContext<TRoutes extends Routes, TRejections extends Rejections> = {
|
|
65
41
|
from: ResolvedRoute | null;
|
|
66
42
|
reject: RouterReject<TRejections>;
|
|
67
43
|
push: RouterPush<TRoutes>;
|
|
68
44
|
replace: RouterReplace<TRoutes>;
|
|
69
45
|
};
|
|
70
|
-
export type PluginBeforeRouteHook<TRoutes extends Routes = Routes, TRejections extends
|
|
71
|
-
export type PluginAfterRouteHook<TRoutes extends Routes = Routes, TRejections extends
|
|
72
|
-
type AddPluginBeforeRouteHook<TRoutes extends Routes, TRejections extends
|
|
73
|
-
type AddPluginAfterRouteHook<TRoutes extends Routes, TRejections extends
|
|
74
|
-
export type PluginErrorHookContext<TRoutes extends Routes = Routes, TRejections extends
|
|
46
|
+
export type PluginBeforeRouteHook<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = (to: ResolvedRoute, context: PluginBeforeRouteHookContext<TRoutes, TRejections>) => MaybePromise<void>;
|
|
47
|
+
export type PluginAfterRouteHook<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = (to: ResolvedRoute, context: PluginAfterRouteHookContext<TRoutes, TRejections>) => MaybePromise<void>;
|
|
48
|
+
type AddPluginBeforeRouteHook<TRoutes extends Routes, TRejections extends Rejections> = (hook: PluginBeforeRouteHook<TRoutes, TRejections>) => HookRemove;
|
|
49
|
+
type AddPluginAfterRouteHook<TRoutes extends Routes, TRejections extends Rejections> = (hook: PluginAfterRouteHook<TRoutes, TRejections>) => HookRemove;
|
|
50
|
+
export type PluginErrorHookContext<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = {
|
|
75
51
|
to: ResolvedRoute;
|
|
76
52
|
from: ResolvedRoute | null;
|
|
77
53
|
source: 'props' | 'hook' | 'component';
|
|
@@ -79,9 +55,9 @@ export type PluginErrorHookContext<TRoutes extends Routes = Routes, TRejections
|
|
|
79
55
|
push: RouterPush<TRoutes>;
|
|
80
56
|
replace: RouterReplace<TRoutes>;
|
|
81
57
|
};
|
|
82
|
-
export type PluginErrorHook<TRoutes extends Routes = Routes, TRejections extends
|
|
83
|
-
export type AddPluginErrorHook<TRoutes extends Routes = Routes, TRejections extends
|
|
84
|
-
export type PluginRouteHooks<TRoutes extends Routes = Routes, TRejections extends
|
|
58
|
+
export type PluginErrorHook<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = (error: unknown, context: PluginErrorHookContext<TRoutes, TRejections>) => void;
|
|
59
|
+
export type AddPluginErrorHook<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = (hook: PluginErrorHook<TRoutes, TRejections>) => HookRemove;
|
|
60
|
+
export type PluginRouteHooks<TRoutes extends Routes = Routes, TRejections extends Rejections = Rejections> = {
|
|
85
61
|
/**
|
|
86
62
|
* Registers a global hook to be called before a route is entered.
|
|
87
63
|
*/
|
|
@@ -2,7 +2,7 @@ import { Routes } from './route';
|
|
|
2
2
|
import { RoutesName } from './routesMap';
|
|
3
3
|
import { RouteParamsByKey } from './routeWithParams';
|
|
4
4
|
import { RouteStateByName } from './state';
|
|
5
|
-
import {
|
|
5
|
+
import { UrlString } from './urlString';
|
|
6
6
|
import { AllPropertiesAreOptional } from './utilities';
|
|
7
7
|
import { QuerySource } from './querySource';
|
|
8
8
|
import { ResolvedRoute } from './resolved';
|
|
@@ -28,6 +28,6 @@ type RouterPushArgs<TRoutes extends Routes, TSource extends RoutesName<TRoutes>>
|
|
|
28
28
|
export type RouterPush<TRoutes extends Routes = any> = {
|
|
29
29
|
<TSource extends RoutesName<TRoutes>>(name: TSource, ...args: RouterPushArgs<TRoutes, TSource>): Promise<void>;
|
|
30
30
|
(route: ResolvedRoute, options?: RouterPushOptions): Promise<void>;
|
|
31
|
-
(url:
|
|
31
|
+
(url: UrlString, options?: RouterPushOptions): Promise<void>;
|
|
32
32
|
};
|
|
33
33
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { BuiltInRejectionType } from '../services/createRouterReject';
|
|
2
|
-
import {
|
|
3
|
-
export type RouterReject<TRejections extends
|
|
2
|
+
import { Rejections, RejectionType } from './rejection';
|
|
3
|
+
export type RouterReject<TRejections extends Rejections | undefined> = <TSource extends (RejectionType<TRejections> | BuiltInRejectionType)>(type: TSource) => void;
|
|
@@ -2,7 +2,7 @@ import { Routes } from './route';
|
|
|
2
2
|
import { RoutesName } from './routesMap';
|
|
3
3
|
import { RouteParamsByKey } from './routeWithParams';
|
|
4
4
|
import { RouteStateByName } from './state';
|
|
5
|
-
import {
|
|
5
|
+
import { UrlString } from './urlString';
|
|
6
6
|
import { AllPropertiesAreOptional } from './utilities';
|
|
7
7
|
import { QuerySource } from './querySource';
|
|
8
8
|
import { ResolvedRoute } from './resolved';
|
|
@@ -15,6 +15,6 @@ type RouterReplaceArgs<TRoutes extends Routes, TSource extends RoutesName<TRoute
|
|
|
15
15
|
export type RouterReplace<TRoutes extends Routes> = {
|
|
16
16
|
<TSource extends RoutesName<TRoutes>>(name: TSource, ...args: RouterReplaceArgs<TRoutes, TSource>): Promise<void>;
|
|
17
17
|
(route: ResolvedRoute, options?: RouterReplaceOptions): Promise<void>;
|
|
18
|
-
(url:
|
|
18
|
+
(url: UrlString, options?: RouterReplaceOptions): Promise<void>;
|
|
19
19
|
};
|
|
20
20
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { QuerySource } from './querySource';
|
|
2
|
-
export type
|
|
2
|
+
export type UrlString = `http://${string}` | `https://${string}` | `/${string}`;
|
|
3
3
|
export type UrlParts = {
|
|
4
4
|
protocol?: string;
|
|
5
5
|
host?: string;
|
|
@@ -14,10 +14,10 @@ export type UrlParts = {
|
|
|
14
14
|
* @returns `true` if the value is a valid URL, otherwise `false`.
|
|
15
15
|
* @group Type Guards
|
|
16
16
|
*/
|
|
17
|
-
export declare function
|
|
17
|
+
export declare function isUrlString(value: unknown): value is UrlString;
|
|
18
18
|
/**
|
|
19
19
|
* Converts a string to a valid URL.
|
|
20
20
|
* @param value - The string to convert.
|
|
21
21
|
* @returns The valid URL.
|
|
22
22
|
*/
|
|
23
|
-
export declare function
|
|
23
|
+
export declare function asUrlString(value: string): UrlString;
|
package/dist/types/useLink.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { PrefetchConfig } from './prefetch';
|
|
|
3
3
|
import { ResolvedRoute } from './resolved';
|
|
4
4
|
import { RouterPushOptions } from './routerPush';
|
|
5
5
|
import { RouterReplaceOptions } from './routerReplace';
|
|
6
|
-
import {
|
|
6
|
+
import { UrlString } from './urlString';
|
|
7
7
|
export type UseLink = {
|
|
8
8
|
/**
|
|
9
9
|
* A template ref to bind to the dom for automatic prefetching
|
|
@@ -16,7 +16,7 @@ export type UseLink = {
|
|
|
16
16
|
/**
|
|
17
17
|
* Resolved URL with params interpolated and query applied. Same value as `router.resolve`.
|
|
18
18
|
*/
|
|
19
|
-
href: ComputedRef<
|
|
19
|
+
href: ComputedRef<UrlString | undefined>;
|
|
20
20
|
/**
|
|
21
21
|
* True if route matches current URL or is ancestor of route that matches current URL
|
|
22
22
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|