1+ const { ipcRenderer } = require ( 'electron' )
2+ const path = require ( 'path' )
3+
4+ const SerialBridge = {
5+ loadPorts : async ( ) => {
6+ return await ipcRenderer . invoke ( 'serial' , 'loadPorts' )
7+ } ,
8+ connect : async ( path ) => {
9+ return await ipcRenderer . invoke ( 'serial' , 'connect' , path )
10+ } ,
11+ disconnect : async ( ) => {
12+ return await ipcRenderer . invoke ( 'serial' , 'disconnect' )
13+ } ,
14+ run : async ( code ) => {
15+ return await ipcRenderer . invoke ( 'serial' , 'run' , code )
16+ } ,
17+ execFile : async ( path ) => {
18+ return await ipcRenderer . invoke ( 'serial' , 'execFile' , path )
19+ } ,
20+ getPrompt : async ( ) => {
21+ return await ipcRenderer . invoke ( 'serial' , 'getPrompt' )
22+ } ,
23+ keyboardInterrupt : async ( ) => {
24+ await ipcRenderer . invoke ( 'serial' , 'keyboardInterrupt' )
25+ return Promise . resolve ( )
26+ } ,
27+ reset : async ( ) => {
28+ await ipcRenderer . invoke ( 'serial' , 'reset' )
29+ return Promise . resolve ( )
30+ } ,
31+ eval : ( d ) => {
32+ return ipcRenderer . invoke ( 'serial' , 'eval' , d )
33+ } ,
34+ onData : ( callback ) => {
35+ // Remove all previous listeners
36+ if ( ipcRenderer . listeners ( "serial-on-data" ) . length > 0 ) {
37+ ipcRenderer . removeAllListeners ( "serial-on-data" )
38+ }
39+ ipcRenderer . on ( 'serial-on-data' , ( event , data ) => {
40+ callback ( data )
41+ } )
42+ } ,
43+ listFiles : async ( folder ) => {
44+ return await ipcRenderer . invoke ( 'serial' , 'listFiles' , folder )
45+ } ,
46+ ilistFiles : async ( folder ) => {
47+ return await ipcRenderer . invoke ( 'serial' , 'ilistFiles' , folder )
48+ } ,
49+ loadFile : async ( file ) => {
50+ return await ipcRenderer . invoke ( 'serial' , 'loadFile' , file )
51+ } ,
52+ removeFile : async ( file ) => {
53+ return await ipcRenderer . invoke ( 'serial' , 'removeFile' , file )
54+ } ,
55+ saveFileContent : async ( filename , content , dataConsumer ) => {
56+ return await ipcRenderer . invoke ( 'serial' , 'saveFileContent' , filename , content , dataConsumer )
57+ } ,
58+ uploadFile : async ( src , dest , dataConsumer ) => {
59+ return await ipcRenderer . invoke ( 'serial' , 'uploadFile' , src , dest , dataConsumer )
60+ } ,
61+ downloadFile : async ( src , dest ) => {
62+ let contents = await ipcRenderer . invoke ( 'serial' , 'loadFile' , src )
63+ return ipcRenderer . invoke ( 'save-file' , dest , contents )
64+ } ,
65+ renameFile : async ( oldName , newName ) => {
66+ return await ipcRenderer . invoke ( 'serial' , 'renameFile' , oldName , newName )
67+ } ,
68+ onConnectionClosed : async ( callback ) => {
69+ // Remove all previous listeners
70+ if ( ipcRenderer . listeners ( "serial-on-connection-closed" ) . length > 0 ) {
71+ ipcRenderer . removeAllListeners ( "serial-on-connection-closed" )
72+ }
73+ ipcRenderer . on ( 'serial-on-connection-closed' , ( event ) => {
74+ callback ( )
75+ } )
76+ } ,
77+ createFolder : async ( folder ) => {
78+ return await ipcRenderer . invoke ( 'serial' , 'createFolder' , folder )
79+ } ,
80+ removeFolder : async ( folder ) => {
81+ return await ipcRenderer . invoke ( 'serial' , 'removeFolder' , folder )
82+ } ,
83+ getNavigationPath : ( navigation , target ) => {
84+ return path . posix . join ( navigation , target )
85+ } ,
86+ getFullPath : ( root , navigation , file ) => {
87+ return path . posix . join ( root , navigation , file )
88+ } ,
89+ getParentPath : ( navigation ) => {
90+ return path . posix . dirname ( navigation )
91+ } ,
92+ fileExists : async ( filePath ) => {
93+ return await ipcRenderer . invoke ( 'serial' , 'fileExists' , filePath )
94+ }
95+ }
96+
97+ module . exports = SerialBridge
0 commit comments