Files
lens/packages/utility-features/kube-api-specifics/src/token.ts
T
Sebastian Malton fa44b795d4 chore: Improve linting within @k8slens/core
- Turning on @typescript-eslint/recommended-requiring-type-checking
- Turning off @typescript-eslint/no-unnecessary-type-assertion (due too many false positives)
- Making @typescript-eslint/no-explicit-any an error (except in tests)

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2023-06-01 09:17:17 -04:00

26 lines
865 B
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { DiContainerForInjection } from "@ogre-tools/injectable";
import { getInjectable, getInjectionToken } from "@ogre-tools/injectable";
import type { KubeApi } from "@k8slens/kube-api";
export const kubeApiInjectionToken = getInjectionToken<KubeApi>({
id: "kube-api-injection-token",
});
export interface KubeApiInjectableParts<Api> {
id: string;
instantiate: (
di: DiContainerForInjection,
) => Api extends KubeApi<infer Kube, infer Data> ? KubeApi<Kube, Data> & Api : never;
}
export const getKubeApiInjectable = <Api>(parts: KubeApiInjectableParts<Api>) =>
getInjectable({
id: parts.id,
instantiate: (di) => parts.instantiate(di),
injectionToken: kubeApiInjectionToken,
});