@@ -8,65 +8,98 @@ import sqlite from "./store/sqlite";
8
8
import { getNativeImage } from "./utils" ;
9
9
import { XFetchConfig , xfetch } from "./xfetch" ;
10
10
11
- export const ipcHandlers = {
12
- sqlite : {
13
- run : async ( _ , query : string , params : [ ] = [ ] ) => sqlite . run ( query , params ) ,
14
- all : async ( _ , query : string , params : [ ] = [ ] ) => sqlite . all ( query , params ) ,
15
- get : async ( _ , query : string , params : [ ] = [ ] ) => sqlite . get ( query , params ) ,
16
- runAsTransaction : async ( _ , queries : string [ ] , params : [ ] [ ] ) => sqlite . runAsTransaction ( queries , params )
17
- } ,
18
- blob : {
19
- cards : {
20
- get : async ( _ , card : string ) => blob . cards . get ( card ) ,
21
- create : async ( _ , cardData : CardData , bannerURI : string | null , avatarURI : string | null ) =>
22
- blob . cards . create ( cardData , bannerURI , avatarURI ) ,
23
- update : async ( _ , cardID : number , cardData : CardData , bannerURI : string | null , avatarURI : string | null ) =>
24
- blob . cards . update ( cardID , cardData , bannerURI , avatarURI ) ,
25
- del : async ( _ , cardID : number ) => blob . cards . del ( cardID ) ,
26
- export_ : async ( _ , card : string ) => blob . cards . export_ ( card ) ,
27
- import_ : async ( _ , zip : string ) => blob . cards . import_ ( zip )
28
- } ,
29
- personas : {
30
- get : async ( _ , persona : string ) => blob . personas . get ( persona ) ,
31
- post : async ( _ , data : PersonaFormData ) => blob . personas . post ( data ) ,
32
- put : async ( _ , id : number , data : PersonaFormData ) => blob . personas . put ( id , data )
11
+ async function init ( ) {
12
+ ipcMain . handle ( " sqlite.run" , async ( _ , query : string , params : [ ] = [ ] ) => {
13
+ return sqlite . run ( query , params ) ;
14
+ } ) ;
15
+ ipcMain . handle ( "sqlite.all" , async ( _ , query : string , params : [ ] = [ ] ) => {
16
+ return sqlite . all ( query , params ) ;
17
+ } ) ;
18
+ ipcMain . handle ( "sqlite.get" , async ( _ , query : string , params : [ ] = [ ] ) => {
19
+ return sqlite . get ( query , params ) ;
20
+ } ) ;
21
+ ipcMain . handle ( "sqlite.runAsTransaction" , async ( _ , queries : string [ ] , params : [ ] [ ] ) => {
22
+ return sqlite . runAsTransaction ( queries , params ) ;
23
+ } ) ;
24
+
25
+ ipcMain . handle ( "blob.cards.get" , async ( _ , card : string ) => {
26
+ return await blob . cards . get ( card ) ;
27
+ } ) ;
28
+
29
+ ipcMain . handle (
30
+ " blob.cards.create" ,
31
+ async ( _ , cardData : CardData , bannerURI : string | null , avatarURI : string | null ) => {
32
+ return await blob . cards . create ( cardData , bannerURI , avatarURI ) ;
33
33
}
34
- } ,
35
- secret : {
36
- get : async ( _ , k : string ) => secret . get ( k ) ,
37
- set : async ( _ , k : string , v : string ) => secret . set ( k , v )
38
- } ,
39
- setting : {
40
- get : async ( ) => setting . get ( ) ,
41
- set : async ( _ , settings : any ) => setting . set ( settings )
42
- } ,
43
- xfetch : {
44
- post : async ( _ , url : string , body ?: object , headers ?: Record < string , string > , config ?: XFetchConfig ) =>
45
- xfetch . post ( url , body , headers , config ) ,
46
- get : async ( _ , url : string , headers ?: Record < string , string > , config ?: XFetchConfig ) =>
47
- xfetch . get ( url , headers , config ) ,
48
- abort : async ( _ , uuid : string ) => xfetch . abort ( uuid )
49
- } ,
50
- utils : {
51
- openURL : async ( _ , url : string ) => shell . openExternal ( url ) ,
52
- getNativeImage : async ( _ , path : string ) => getNativeImage ( path )
53
- }
54
- } ;
34
+ ) ;
55
35
56
- // Recurse through the ipcHandlers object and register all handlers with ipcMain
57
- function registerHandlers ( handlers : any , prefix = "" ) {
58
- for ( const [ key , handler ] of Object . entries ( handlers ) ) {
59
- const channel = prefix ? `${ prefix } .${ key } ` : key ;
60
- if ( typeof handler === "function" ) {
61
- ipcMain . handle ( channel , ( _ , ...args ) => handler ( ...args ) ) ;
62
- } else {
63
- registerHandlers ( handler , channel ) ;
36
+ ipcMain . handle (
37
+ "blob.cards.update" ,
38
+ async ( _ , cardID : number , cardData : CardData , bannerURI : string | null , avatarURI : string | null ) => {
39
+ return await blob . cards . update ( cardID , cardData , bannerURI , avatarURI ) ;
64
40
}
65
- }
66
- }
41
+ ) ;
67
42
68
- async function init ( ) {
69
- registerHandlers ( ipcHandlers ) ;
43
+ ipcMain . handle ( "blob.cards.del" , async ( _ , cardID : number ) => {
44
+ return await blob . cards . del ( cardID ) ;
45
+ } ) ;
46
+
47
+ ipcMain . handle ( "blob.cards.export_" , async ( _ , card : string ) => {
48
+ return await blob . cards . export_ ( card ) ;
49
+ } ) ;
50
+
51
+ ipcMain . handle ( "blob.cards.import_" , async ( _ , zip : string ) => {
52
+ return await blob . cards . import_ ( zip ) ;
53
+ } ) ;
54
+
55
+ ipcMain . handle ( "blob.personas.get" , async ( _ , persona : string ) => {
56
+ return await blob . personas . get ( persona ) ;
57
+ } ) ;
58
+ ipcMain . handle ( "blob.personas.post" , async ( _ , data : PersonaFormData ) => {
59
+ return await blob . personas . post ( data ) ;
60
+ } ) ;
61
+
62
+ ipcMain . handle ( "blob.personas.put" , async ( _ , id : number , data : PersonaFormData ) => {
63
+ return await blob . personas . put ( id , data ) ;
64
+ } ) ;
65
+
66
+ ipcMain . handle ( "secret.get" , async ( _ , k : string ) => {
67
+ return await secret . get ( k ) ;
68
+ } ) ;
69
+
70
+ ipcMain . handle ( "secret.set" , async ( _ , k : string , v : string ) => {
71
+ return await secret . set ( k , v ) ;
72
+ } ) ;
73
+
74
+ ipcMain . handle (
75
+ "xfetch.post" ,
76
+ async ( _ , url : string , body ?: object , headers ?: Record < string , string > , config ?: XFetchConfig ) => {
77
+ return await xfetch . post ( url , body , headers , config ) ;
78
+ }
79
+ ) ;
80
+
81
+ ipcMain . handle ( "xfetch.get" , async ( _ , url : string , headers ?: Record < string , string > , config ?: XFetchConfig ) => {
82
+ return await xfetch . get ( url , headers , config ) ;
83
+ } ) ;
84
+
85
+ ipcMain . handle ( "xfetch.abort" , async ( _ , uuid : string ) => {
86
+ return await xfetch . abort ( uuid ) ;
87
+ } ) ;
88
+
89
+ ipcMain . handle ( "utils.openURL" , async ( _ , url : string ) => {
90
+ return await shell . openExternal ( url ) ;
91
+ } ) ;
92
+
93
+ ipcMain . handle ( "utils.getNativeImage" , async ( _ , path : string ) => {
94
+ return getNativeImage ( path ) ;
95
+ } ) ;
96
+ ipcMain . handle ( "setting.get" , async ( ) => {
97
+ return await setting . get ( ) ;
98
+ } ) ;
99
+
100
+ ipcMain . handle ( "setting.set" , async ( _ , settings : any ) => {
101
+ return await setting . set ( settings ) ;
102
+ } ) ;
70
103
}
71
104
72
105
export default {
0 commit comments