mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix type issue when generating extension types
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
3d39cab82d
commit
66addb8595
@ -40,6 +40,7 @@ export interface NavigateToRoute {
|
|||||||
(route: Route<void>, options?: BaseNavigateToRouteOptions): void;
|
(route: Route<void>, options?: BaseNavigateToRouteOptions): void;
|
||||||
<TParameters extends Record<TRequiredKeys, string | number>, TRequiredKeys extends string>(route: Route<TParameters>, opts: NavigateToRouteOptions<TParameters>): void;
|
<TParameters extends Record<TRequiredKeys, string | number>, TRequiredKeys extends string>(route: Route<TParameters>, opts: NavigateToRouteOptions<TParameters>): void;
|
||||||
<TParameters extends object>(route: Route<TParameters>, opts?: NavigateToRouteOptions<TParameters>): void;
|
<TParameters extends object>(route: Route<TParameters>, opts?: NavigateToRouteOptions<TParameters>): void;
|
||||||
|
<TParameters extends object>(route: Route<TParameters | void>, opts?: NavigateToRouteOptions<TParameters>): void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const navigateToRouteInjectionToken = getInjectionToken<NavigateToRoute>({
|
export const navigateToRouteInjectionToken = getInjectionToken<NavigateToRoute>({
|
||||||
|
|||||||
@ -4,8 +4,10 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { navigateToUrlInjectionToken } from "../../common/front-end-routing/navigate-to-url-injection-token";
|
import { navigateToUrlInjectionToken } from "../../common/front-end-routing/navigate-to-url-injection-token";
|
||||||
|
import type { NavigateToRoute, NavigateToRouteOptions } from "../../common/front-end-routing/navigate-to-route-injection-token";
|
||||||
import { navigateToRouteInjectionToken } from "../../common/front-end-routing/navigate-to-route-injection-token";
|
import { navigateToRouteInjectionToken } from "../../common/front-end-routing/navigate-to-route-injection-token";
|
||||||
import { buildURL } from "../../common/utils/buildUrl";
|
import { buildURL } from "../../common/utils/buildUrl";
|
||||||
|
import type { Route } from "../../common/front-end-routing/front-end-route-injection-token";
|
||||||
|
|
||||||
const navigateToRouteInjectable = getInjectable({
|
const navigateToRouteInjectable = getInjectable({
|
||||||
id: "navigate-to-route",
|
id: "navigate-to-route",
|
||||||
@ -13,7 +15,7 @@ const navigateToRouteInjectable = getInjectable({
|
|||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const navigateToUrl = di.inject(navigateToUrlInjectionToken);
|
const navigateToUrl = di.inject(navigateToUrlInjectionToken);
|
||||||
|
|
||||||
return (route, options) => {
|
return ((route: Route<object | void>, options: NavigateToRouteOptions<object>) => {
|
||||||
const url = buildURL(route.path, {
|
const url = buildURL(route.path, {
|
||||||
params: options?.parameters,
|
params: options?.parameters,
|
||||||
query: options?.query,
|
query: options?.query,
|
||||||
@ -21,7 +23,7 @@ const navigateToRouteInjectable = getInjectable({
|
|||||||
});
|
});
|
||||||
|
|
||||||
navigateToUrl(url, options);
|
navigateToUrl(url, options);
|
||||||
};
|
}) as NavigateToRoute;
|
||||||
},
|
},
|
||||||
|
|
||||||
injectionToken: navigateToRouteInjectionToken,
|
injectionToken: navigateToRouteInjectionToken,
|
||||||
|
|||||||
@ -4,9 +4,11 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { navigateToUrlInjectionToken } from "../../common/front-end-routing/navigate-to-url-injection-token";
|
import { navigateToUrlInjectionToken } from "../../common/front-end-routing/navigate-to-url-injection-token";
|
||||||
|
import type { NavigateToRoute, NavigateToRouteOptions } from "../../common/front-end-routing/navigate-to-route-injection-token";
|
||||||
import { navigateToRouteInjectionToken } from "../../common/front-end-routing/navigate-to-route-injection-token";
|
import { navigateToRouteInjectionToken } from "../../common/front-end-routing/navigate-to-route-injection-token";
|
||||||
import currentlyInClusterFrameInjectable from "./currently-in-cluster-frame.injectable";
|
import currentlyInClusterFrameInjectable from "./currently-in-cluster-frame.injectable";
|
||||||
import { buildURL } from "../../common/utils/buildUrl";
|
import { buildURL } from "../../common/utils/buildUrl";
|
||||||
|
import type { Route } from "../../common/front-end-routing/front-end-route-injection-token";
|
||||||
|
|
||||||
const navigateToRouteInjectable = getInjectable({
|
const navigateToRouteInjectable = getInjectable({
|
||||||
id: "navigate-to-route",
|
id: "navigate-to-route",
|
||||||
@ -18,7 +20,7 @@ const navigateToRouteInjectable = getInjectable({
|
|||||||
currentlyInClusterFrameInjectable,
|
currentlyInClusterFrameInjectable,
|
||||||
);
|
);
|
||||||
|
|
||||||
return (route, options) => {
|
return ((route: Route<object | void>, options: NavigateToRouteOptions<object>) => {
|
||||||
const url = buildURL(route.path, {
|
const url = buildURL(route.path, {
|
||||||
// TODO: enhance typing
|
// TODO: enhance typing
|
||||||
params: options?.parameters as any,
|
params: options?.parameters as any,
|
||||||
@ -30,7 +32,7 @@ const navigateToRouteInjectable = getInjectable({
|
|||||||
...options,
|
...options,
|
||||||
forceRootFrame: currentlyInClusterFrame && route.clusterFrame === false,
|
forceRootFrame: currentlyInClusterFrame && route.clusterFrame === false,
|
||||||
});
|
});
|
||||||
};
|
}) as NavigateToRoute;
|
||||||
},
|
},
|
||||||
|
|
||||||
injectionToken: navigateToRouteInjectionToken,
|
injectionToken: navigateToRouteInjectionToken,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user