diff options
| author | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-04-03 21:18:57 +0200 |
|---|---|---|
| committer | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2025-05-28 13:25:24 +0200 |
| commit | 979c6436fdbbbaee6e2511a13301e9fbf857ec4f (patch) | |
| tree | a1f8d59d5e9a60c57f3dd2c4d21739f91b0e4f7a | |
| parent | 5a181cfd8a9ebe56acad5a56c0be77e2bf005af7 (diff) | |
| download | mullvadvpn-979c6436fdbbbaee6e2511a13301e9fbf857ec4f.tar.xz mullvadvpn-979c6436fdbbbaee6e2511a13301e9fbf857ec4f.zip | |
Add converter for gRPC to IAppVersionInfo
We want to parse the changelog for the new version
in the same way we do it for the changelog we bundle
with each release.
| -rw-r--r-- | desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts index 238174d08e..5ad3a14e6f 100644 --- a/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts +++ b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts @@ -27,6 +27,7 @@ import { FeatureIndicator, FirewallPolicyError, FirewallPolicyErrorType, + IAppVersionInfo, IBridgeConstraints, ICustomList, IDevice, @@ -62,6 +63,7 @@ import { TunnelType, wrapConstraint, } from '../shared/daemon-rpc-types'; +import { parseChangelog } from './changelog'; export class ResponseParseError extends Error { constructor(message: string) { @@ -774,6 +776,23 @@ export function convertFromAppUpgradeEvent(data: grpcTypes.AppUpgradeEvent): Dae throw new Error(`Unknown app upgrade event received containing ${keys}`); } +export function convertFromAppVersionInfo(data: grpcTypes.AppVersionInfo): IAppVersionInfo { + const { suggestedUpgrade, ...appVersionInfo } = data.toObject(); + const changelog = suggestedUpgrade?.changelog ? parseChangelog(suggestedUpgrade?.changelog) : []; + + if (suggestedUpgrade) { + return { + ...appVersionInfo, + suggestedUpgrade: { + ...suggestedUpgrade, + changelog, + }, + }; + } + + return appVersionInfo; +} + export function convertFromDaemonEvent(data: grpcTypes.DaemonEvent): DaemonEvent { const tunnelState = data.getTunnelState(); if (tunnelState !== undefined) { |
