mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
46 lines
1.6 KiB
TypeScript
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;
|