node-main.ts 1.15 KB
import { ServiceLocator } from './service-locator';
import { NodeFileHandler } from './file-handler/node-file-handler';

export default class Bsync {

    static NodeFileHandler = NodeFileHandler;

    static ServiceLocator = ServiceLocator;

    static configIpcMain(ipcMain: any, basePath: string) {       
        
        ipcMain.on('bsync-download', (event, args) => {
            let nodeFileHander = new NodeFileHandler();
            
            nodeFileHander
                .on('progress', (progress:number) => { event.sender.send('bsync-download-progress', progress); })
                .once('error', (error) => { nodeFileHander.removeAllListeners(); event.sender.send('bsync-download-error', error); })
                .once('complete', () => { nodeFileHander.removeAllListeners(); event.sender.send('bsync-download-complete'); })
                .download(args.source, basePath + "/" + args.target);
        });

        ipcMain.on('bsync-cleanup', (event, args) => {
            let nodeFileHandler = new NodeFileHandler();
            nodeFileHandler.cleanup(args.files, basePath);
            event.sender.send('bsync-cleanup-complete');
        });

    }

}