mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* wip: restructure to monorepo Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * refactor create-release-pr to a package Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * build fixes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * github workflow fixes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix typo Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * add webpack-env types to core Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix github workflows Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * refactor/fix integration tests Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * lint fix Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * yarn run dev Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * eslint settings for vscode Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * move templates to right package Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * open-lens build fixes Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * integration test fix Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix nx task dependencies Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * use bash shell for unit tests in test workflow Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix test:unit for windows Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix win-ca webpack error in open-lens Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix win-ca webpack error in open-lens Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * fix build:app on windows Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * remove ELECTRON_BUILDER_EXTRA_ARGS Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * sync src/ from master Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> * remove Makefile from core Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com> Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
import { getInjectionToken } from "@ogre-tools/injectable";
|
|
import type { Route } from "./front-end-route-injection-token";
|
|
|
|
type InferParametersFrom<TRoute> = TRoute extends Route<infer TParameters>
|
|
? TParameters
|
|
: never;
|
|
|
|
type RequiredKeys<T> = Exclude<
|
|
{
|
|
[K in keyof T]: T extends Record<K, T[K]> ? K : never;
|
|
}[keyof T],
|
|
undefined
|
|
>;
|
|
|
|
type ObjectContainingNoRequired<T> = T extends void
|
|
? never
|
|
: RequiredKeys<T> extends []
|
|
? any
|
|
: never;
|
|
|
|
type ObjectContainsNoRequired<T> = T extends ObjectContainingNoRequired<T>
|
|
? true
|
|
: false;
|
|
|
|
// TODO: Missing types for:
|
|
// - Navigating to route without parameters, with parameters
|
|
// - Navigating to route with required parameters, without parameters
|
|
type Parameters<TParameters> = TParameters extends void
|
|
? {}
|
|
: ObjectContainsNoRequired<TParameters> extends true
|
|
? { parameters?: TParameters }
|
|
: { parameters: TParameters };
|
|
|
|
export type NavigateToRouteOptions<TRoute> = Parameters<
|
|
InferParametersFrom<TRoute>
|
|
> & {
|
|
query?: Record<string, string>;
|
|
fragment?: string;
|
|
withoutAffectingBackButton?: boolean;
|
|
};
|
|
|
|
export type NavigateToRoute = <TRoute extends Route<unknown>>(
|
|
route: TRoute,
|
|
options?: NavigateToRouteOptions<TRoute>) => void;
|
|
|
|
export const navigateToRouteInjectionToken = getInjectionToken<NavigateToRoute>(
|
|
{ id: "navigate-to-route-injection-token" },
|
|
);
|