1- import { OpenDialogOptions , OpenDialogReturnValue , SaveDialogOptions , SaveDialogReturnValue } from "electron" ;
1+ import {
2+ OpenDialogOptions ,
3+ OpenDialogReturnValue ,
4+ SaveDialogOptions ,
5+ SaveDialogReturnValue ,
6+ } from 'electron' ;
27
38export type ServerStatusEvent = {
49 type : 'stdout' | 'stderr' | 'error' | 'terminated' | 'other' ;
510 message : string ;
6- }
11+ } ;
712
813export type OSStats = {
914 type : 'linux' | 'windows' | 'macos' | 'unknown' ;
10- }
15+ } ;
1116
1217export interface CrossStorage {
1318 set ( key : string , value : unknown ) : Promise < void > ;
@@ -16,25 +21,37 @@ export interface CrossStorage {
1621 save ( ) : Promise < boolean > ;
1722}
1823
24+ export type GHGet = { type : 'fw-releases' } | { type : 'asset' ; url : string } ;
25+ export type GHReturn = {
26+ asset : [ number , string ] [ ] | null ;
27+ [ 'fw-releases' ] :
28+ | {
29+ assets : { browser_download_url : string ; name : string ; digest : string } [ ] ;
30+ prerelease : boolean ;
31+ tag_name : string ;
32+ body : string ;
33+ } [ ]
34+ | null ;
35+ } ;
36+
1937export interface IElectronAPI {
20- onServerStatus : (
21- cb : ( data : ServerStatusEvent ) => void
22- ) => ( ) => void ;
23- openUrl : ( url : string ) => Promise < void >
24- osStats : ( ) => Promise < OSStats > ,
25- openLogsFolder : ( ) => Promise < void > ,
26- openConfigFolder : ( ) => Promise < void > ,
38+ onServerStatus : ( cb : ( data : ServerStatusEvent ) => void ) => ( ) => void ;
39+ openUrl : ( url : string ) => Promise < void > ;
40+ osStats : ( ) => Promise < OSStats > ;
41+ openLogsFolder : ( ) => Promise < void > ;
42+ openConfigFolder : ( ) => Promise < void > ;
2743 close : ( ) => void ;
2844 minimize : ( ) => void ;
2945 maximize : ( ) => void ;
3046 showDecorations : ( decorations : boolean ) => void ;
3147 setTranslations : ( translations : Record < string , string > ) => void ;
3248 i18nOverride : ( ) => Promise < string | false > ;
3349 getStorage : ( type : 'settings' | 'cache' ) => Promise < CrossStorage > ;
34- openDialog : ( options : OpenDialogOptions ) => Promise < OpenDialogReturnValue >
35- saveDialog : ( options : SaveDialogOptions ) => Promise < SaveDialogReturnValue >
50+ openDialog : ( options : OpenDialogOptions ) => Promise < OpenDialogReturnValue > ;
51+ saveDialog : ( options : SaveDialogOptions ) => Promise < SaveDialogReturnValue > ;
3652 log : ( type : 'info' | 'error' | 'warn' , ...args : unknown [ ] ) => void ;
3753 openFile : ( path : string ) => void ;
54+ ghGet : < T extends GHGet > ( options : T ) => Promise < GHReturn [ T [ 'type' ] ] > ;
3855}
3956
4057declare global {
0 commit comments