mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
- Allows for bundled kubectl config to be changed without code changes - Introduce @k8slens/kubectl-versions - Compile time fetching of versions - Update @swc/* packages Signed-off-by: Sebastian Malton <sebastian@malton.name>
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
/* eslint-disable prettier/prettier */
|
|
import { getInjectable, getInjectionToken } from "@ogre-tools/injectable";
|
|
import { runManyFor } from "@k8slens/run-many";
|
|
import * as timeSlots from "./time-slots";
|
|
|
|
export type StartApplication = () => Promise<void>;
|
|
|
|
export const startApplicationInjectionToken = getInjectionToken<StartApplication>({
|
|
id: "start-application-injection-token",
|
|
});
|
|
|
|
const startApplicationInjectable = getInjectable({
|
|
id: "start-application",
|
|
|
|
instantiate: (di): StartApplication => {
|
|
const runManyAsync = runManyFor(di);
|
|
const beforeApplicationIsLoading = runManyAsync(timeSlots.beforeApplicationIsLoadingInjectionToken);
|
|
const onLoadOfApplication = runManyAsync(timeSlots.onLoadOfApplicationInjectionToken);
|
|
const afterApplicationIsLoaded = runManyAsync(timeSlots.afterApplicationIsLoadedInjectionToken);
|
|
|
|
return async () => {
|
|
await beforeApplicationIsLoading();
|
|
await onLoadOfApplication();
|
|
await afterApplicationIsLoaded();
|
|
};
|
|
},
|
|
|
|
injectionToken: startApplicationInjectionToken,
|
|
});
|
|
|
|
export default startApplicationInjectable;
|