Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"version": "0.2.0",
"description": "Trufos - A cross-platform REST client",
"main": ".vite/build/main.js",
"repository": "github:EXXETA/trufos",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
Expand Down Expand Up @@ -105,6 +106,7 @@
"template-replace-stream": "^2.2.0",
"tmp": "^0.2.5",
"undici": "^7.16.0",
"update-electron-app": "^3.1.1",
"winston": "^3.18.3",
"xml-formatter": "^3.6.7",
"zustand": "^5.0.8"
Expand Down
14 changes: 14 additions & 0 deletions src/main/event/main-event-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { PersistenceService } from '../persistence/service/persistence-service';
import './stream-events';
import { EnvironmentMap } from 'shim/objects/environment';
import { ImportService } from 'main/import/service/import-service';
import { updateElectronApp } from 'update-electron-app';

const persistenceService = PersistenceService.instance;
const environmentService = EnvironmentService.instance;
Expand Down Expand Up @@ -171,4 +172,17 @@ export class MainEventService implements IEventService {
async rename(object: Folder | TrufosRequest, newTitle: string): Promise<void> {
await persistenceService.rename(object, newTitle);
}

updateApp() {
const prefixMessage = (message: string) => `[UPDATER]: ${message}`;
updateElectronApp({
logger: {
log: (message: string) => logger.info(prefixMessage(message)),
info: (message: string) => logger.info(prefixMessage(message)),
error: (message: string) => logger.error(prefixMessage(message)),
warn: (message: string) => logger.warn(prefixMessage(message)),
},
updateInterval: '1 hour',
});
}
}
2 changes: 2 additions & 0 deletions src/main/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { SettingsService } from './persistence/service/settings-service';
import { once } from 'node:events';
import process from 'node:process';
import { ResponseBodyService } from 'main/network/service/response-body-service';
import { MainEventService } from 'main/event/main-event-service';

declare const MAIN_WINDOW_VITE_DEV_SERVER_URL: string | undefined;
declare const MAIN_WINDOW_VITE_NAME: string;
Expand All @@ -32,6 +33,7 @@ const createWindow = async () => {
// initialize services in correct order
await SettingsService.instance.init();
await EnvironmentService.instance.init();
MainEventService.instance.updateApp(); // check for updates in the background

// create the browser window
const mainWindow = new BrowserWindow({
Expand Down
1 change: 1 addition & 0 deletions src/renderer/services/event/renderer-event-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,5 @@ export class RendererEventService implements IEventService {
listCollections = createEventMethod('listCollections');
importCollection = createEventMethod('importCollection');
rename = createEventMethod('rename');
updateApp = createEventMethod('updateApp');
}
6 changes: 6 additions & 0 deletions src/shim/event-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -161,4 +161,10 @@ export interface IEventService {
* @param newTitle The new title.
*/
rename(object: Folder | TrufosRequest, newTitle: string): Promise<void>;

/**
* Trigger the application update process in the background.
* Will show a dialog to the user if an update is available.
*/
updateApp(): void;
}
27 changes: 27 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6649,6 +6649,15 @@ __metadata:
languageName: node
linkType: hard

"github-url-to-object@npm:^4.0.4":
version: 4.0.6
resolution: "github-url-to-object@npm:4.0.6"
dependencies:
is-url: "npm:^1.1.0"
checksum: 10c0/b8ed9b2b93c55657299b7cc5ce9faf4441f143e59f995e126929d18f8fc692fc932d8530da9bde7655f35b29201beacbc17b066b7e26dbcc0dc983f8d3c918cf
languageName: node
linkType: hard

"glob-parent@npm:^5.1.2":
version: 5.1.2
resolution: "glob-parent@npm:5.1.2"
Expand Down Expand Up @@ -7440,6 +7449,13 @@ __metadata:
languageName: node
linkType: hard

"is-url@npm:^1.1.0":
version: 1.2.4
resolution: "is-url@npm:1.2.4"
checksum: 10c0/0157a79874f8f95fdd63540e3f38c8583c2ef572661cd0693cda80ae3e42dfe8e9a4a972ec1b827f861d9a9acf75b37f7d58a37f94a8a053259642912c252bc3
languageName: node
linkType: hard

"is-weakmap@npm:^2.0.2":
version: 2.0.2
resolution: "is-weakmap@npm:2.0.2"
Expand Down Expand Up @@ -11023,6 +11039,7 @@ __metadata:
ts-node: "npm:^10.9.2"
typescript: "npm:5.9.3"
undici: "npm:^7.16.0"
update-electron-app: "npm:^3.1.1"
vite: "npm:^7.1.12"
vitest: "npm:^4.0.1"
webpack: "npm:^5.102.1"
Expand Down Expand Up @@ -11419,6 +11436,16 @@ __metadata:
languageName: node
linkType: hard

"update-electron-app@npm:^3.1.1":
version: 3.1.1
resolution: "update-electron-app@npm:3.1.1"
dependencies:
github-url-to-object: "npm:^4.0.4"
ms: "npm:^2.1.1"
checksum: 10c0/b3c72bd13a02a7227d7116dc939b96a458545371d2dd25a26bf488cefb40d55af4a7c6c81ef025f14fd97f2d9c86256d3e200c7895a5fc4e3ddd3e5594f2ff12
languageName: node
linkType: hard

"uri-js@npm:^4.2.2":
version: 4.4.1
resolution: "uri-js@npm:4.4.1"
Expand Down