Files
lens/src/main/application-update/quit-and-install-update.injectable.ts
T

46 lines
1.6 KiB
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import electronQuitAndInstallUpdateInjectable from "../electron-app/features/electron-quit-and-install-update.injectable";
import { getCurrentDateTime } from "../../common/utils/date/get-current-date-time";
import emitEventInjectable from "../../common/app-event-bus/emit-event.injectable";
import discoveredUpdateVersionInjectable from "../../common/application-update/discovered-update-version/discovered-update-version.injectable";
const quitAndInstallUpdateInjectable = getInjectable({
id: "quit-and-install-update",
instantiate: (di) => {
const electronQuitAndInstallUpdate = di.inject(
electronQuitAndInstallUpdateInjectable,
);
const emitEvent = di.inject(emitEventInjectable);
const discoveredUpdateVersion = di.inject(discoveredUpdateVersionInjectable);
return () => {
const discoveredVersion = discoveredUpdateVersion.value.get();
if (!discoveredVersion) {
throw new Error("Tried to install update but no update was discovered.");
}
emitEvent({
name: "app",
action: "start-installing-update",
params: {
version: discoveredVersion.version,
updateChannel: discoveredVersion.updateChannel.id,
currentDateTime: getCurrentDateTime(),
},
});
electronQuitAndInstallUpdate();
};
},
});
export default quitAndInstallUpdateInjectable;