From 90c6aee83bb15c06a512b581de5b7c02d8957e6e Mon Sep 17 00:00:00 2001 From: Ishan Karmakar Date: Mon, 1 Jun 2026 18:30:05 -0500 Subject: [PATCH] fix: Fix linting issues --- src/config.ts | 5 +++-- src/main.ts | 7 ++++--- src/preload.ts | 3 ++- src/renderer.ts | 6 +----- src/status.ts | 14 ++------------ src/types.ts | 11 +++++++++++ 6 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 src/types.ts diff --git a/src/config.ts b/src/config.ts index 7da98f5..a61eff2 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,13 +1,14 @@ +import { NetworkStatus } from "./types"; + export const MANAGEMENT_URL = 'https://vpn.vyntehome.com'; export const GATEWAY_HOST = new URL(MANAGEMENT_URL).host; export const APP_NAME = "Vynte Connect"; export const POLL_INTERVAL_MS = 5000; export const WINDOW_WIDTH = 384; export const WINDOW_HEIGHT = 420; -export const DEFAULT_STATUS = { +export const DEFAULT_STATUS: NetworkStatus = { state: "checking", title: `Checking ${GATEWAY_HOST}`, message: "Preparing the Vynte access client.", - connectedSince: null, gatewayHost: GATEWAY_HOST }; \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index de26315..5b01776 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,6 +4,7 @@ import started from 'electron-squirrel-startup'; import { APP_NAME, DEFAULT_STATUS, GATEWAY_HOST, MANAGEMENT_URL, POLL_INTERVAL_MS, WINDOW_HEIGHT, WINDOW_WIDTH } from './config'; import { NetBirdClient } from './netbird'; import { baseStatus, normalizeStatus } from './status'; +import { NetworkStatus, UIStatus } from './types'; // Handle creating/removing shortcuts on Windows when installing/uninstalling. if (started) { @@ -57,7 +58,7 @@ let tray: Tray; let window: BrowserWindow; let pollTimer: NodeJS.Timeout; let autoConnect = false; -let cachedStatus = { ...DEFAULT_STATUS }; +let cachedStatus = DEFAULT_STATUS; function resourcePath(name: string) { if (app.isPackaged) { @@ -70,7 +71,7 @@ function netbirdClient() { return new NetBirdClient(resourcePath(process.platform === "win32" ? 'netbird.exe' : 'netbird')); } -function withAutoConnect(status: Record) { +function withAutoConnect(status: NetworkStatus): UIStatus { return { ...status, autoConnect }; } @@ -105,7 +106,7 @@ function updateTray() { tray.setContextMenu(Menu.buildFromTemplate(template)); } -function setStatus(status: Record) { +function setStatus(status: NetworkStatus) { cachedStatus = { ...cachedStatus, ...status, diff --git a/src/preload.ts b/src/preload.ts index 43bc2ae..939986c 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -2,6 +2,7 @@ // https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts import { contextBridge, ipcRenderer } from "electron"; +import { UIStatus } from "./types"; contextBridge.exposeInMainWorld('vynte', { getStatus: () => ipcRenderer.invoke('status:get'), @@ -12,5 +13,5 @@ contextBridge.exposeInMainWorld('vynte', { toggleAuto: () => ipcRenderer.invoke('auto:toggle'), quit: () => ipcRenderer.invoke('app:quit'), openGateway: () => ipcRenderer.invoke('external:openGateway'), - onStatus: (callback: Function) => ipcRenderer.on('status', (_, status) => callback(status)) + onStatus: (callback: (status: UIStatus) => void) => ipcRenderer.on('status', (_, status) => callback(status)) }) \ No newline at end of file diff --git a/src/renderer.ts b/src/renderer.ts index 22884b5..6041888 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -27,7 +27,7 @@ */ import './index.css' -import type { NetworkStatus } from './status'; +import { UIStatus } from './types'; const body = document.body; @@ -40,10 +40,6 @@ const auto = document.getElementById('auto') as HTMLElement; const logout = document.getElementById('logout') as HTMLElement; const quit = document.getElementById('quit') as HTMLElement; -interface UIStatus extends NetworkStatus { - autoConnect?: boolean; -} - let currentStatus: Partial = { state: 'checking', }; diff --git a/src/status.ts b/src/status.ts index 42b8337..4e09550 100644 --- a/src/status.ts +++ b/src/status.ts @@ -1,12 +1,5 @@ import { GATEWAY_HOST } from './config'; - -export interface NetworkStatus { - state?: string; - title?: string; - message?: string; - connectedSince: number | null; - gatewayHost: string; -} +import { NetworkStatus } from './types'; interface NetBirdStatusResponse { daemonStatus?: string; @@ -22,11 +15,8 @@ interface NetBirdStatusResponse { }; } -export function baseStatus( - overrides: Partial = {} -): NetworkStatus { +export function baseStatus(overrides: NetworkStatus): NetworkStatus { return { - connectedSince: null, gatewayHost: GATEWAY_HOST, ...overrides, }; diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..5b351ff --- /dev/null +++ b/src/types.ts @@ -0,0 +1,11 @@ +export interface NetworkStatus { + state: string; + title: string; + message: string; + connectedSince?: number; + gatewayHost?: string; +} + +export interface UIStatus extends NetworkStatus { + autoConnect?: boolean; +} \ No newline at end of file