@oldzy/conduit-electron-adapter 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  'use strict';var electron=require('electron'),conduit=require('@oldzy/conduit');/* conduit - MIT License */
2
- var h=Object.defineProperty;var m=(o,s,e)=>s in o?h(o,s,{enumerable:true,configurable:true,writable:true,value:e}):o[s]=e;var d=(o,s)=>h(o,"name",{value:s,configurable:true});var t=(o,s,e)=>m(o,typeof s!="symbol"?s+"":s,e);var u=class u extends conduit.BaseResponse{constructor(e,r,n){super("ERROR_RESPONSE");t(this,"requestUuid");t(this,"error");t(this,"stack");this.requestUuid=e,this.error=r,this.stack=n,this.success=false;}};d(u,"ErrorResponse");var c=u;var p=class p{constructor(){t(this,"name","ElectronAdapter");t(this,"app");t(this,"requestControllers",new Map);}configure(s){s.addSingleton("ElectronApp",electron.app),s.addSingleton("IpcMain",electron.ipcMain);}initialize(s){if(this.app=s,!this.app)throw new Error("Application not initialized");electron.ipcMain.handle("conduit:send",async(e,r)=>await this.handleSendRequest(e,r)),electron.ipcMain.handle("conduit:stream",async(e,r)=>{await this.handleStreamRequest(e,r);}),electron.ipcMain.handle("conduit:cancel",async(e,r)=>{await this.handleCancel(e,r);});}async handleSendRequest(s,e){try{return await this.app.send(e)}catch(r){throw this.createErrorResponse(e.uuid,r)}}async handleStreamRequest(s,e){let r=new AbortController;this.requestControllers.set(e.uuid,r);try{let n=await this.app.stream(e);await this.handleStream(s,e,n,r);}catch(n){let i=this.createErrorResponse(e.uuid,n);s.sender.send(`conduit:response:error:${e.uuid}`,i),this.requestControllers.delete(e.uuid);}}async handleStream(s,e,r,n){try{for await(let i of r){if(n.signal.aborted){s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:!1,requestUuid:e.uuid,error:"Request was cancelled"});return}s.sender.send(`conduit:response:data:${e.uuid}`,i);}s.sender.send(`conduit:response:complete:${e.uuid}`);}catch(i){if(n.signal.aborted)s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let f=this.createErrorResponse(e.uuid,i);s.sender.send(`conduit:response:error:${e.uuid}`,f);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(s,e){let r=this.requestControllers.get(e);r&&(r.abort(),this.requestControllers.delete(e),s.sender.send(`conduit:response:cancelled:${e}`,{success:false,requestUuid:e,error:"Request cancelled by user"}));}createErrorResponse(s,e){return new c(s,e instanceof Error?e.message:"Unknown error",e instanceof Error?e.stack:void 0)}dispose(){for(let[s,e]of this.requestControllers.entries())e.abort(),this.requestControllers.delete(s);electron.ipcMain.removeHandler("conduit:send"),electron.ipcMain.removeHandler("conduit:stream"),electron.ipcMain.removeHandler("conduit:cancel");}};d(p,"ElectronAdapter");var l=p;exports.ElectronAdapter=l;
2
+ var h=Object.defineProperty;var f=(o,s,e)=>s in o?h(o,s,{enumerable:true,configurable:true,writable:true,value:e}):o[s]=e;var d=(o,s)=>h(o,"name",{value:s,configurable:true});var t=(o,s,e)=>f(o,typeof s!="symbol"?s+"":s,e);var w=Symbol("ERROR_RESPONSE"),u=class u extends conduit.BaseResponse{constructor(e,r,n){super(w);t(this,"requestUuid");t(this,"error");t(this,"stack");this.requestUuid=e,this.error=r,this.stack=n,this.success=false;}};d(u,"ErrorResponse");var c=u;var p=class p{constructor(){t(this,"name","ElectronAdapter");t(this,"app");t(this,"requestControllers",new Map);}configure(s){s.addSingleton("ElectronApp",electron.app),s.addSingleton("IpcMain",electron.ipcMain);}initialize(s){if(this.app=s,!this.app)throw new Error("Application not initialized");electron.ipcMain.handle("conduit:send",async(e,r)=>await this.handleSendRequest(e,r)),electron.ipcMain.handle("conduit:stream",async(e,r)=>{await this.handleStreamRequest(e,r);}),electron.ipcMain.handle("conduit:cancel",async(e,r)=>{await this.handleCancel(e,r);});}async handleSendRequest(s,e){try{return await this.app.send(e)}catch(r){throw this.createErrorResponse(e.uuid,r)}}async handleStreamRequest(s,e){let r=new AbortController;this.requestControllers.set(e.uuid,r);try{let n=await this.app.stream(e);await this.handleStream(s,e,n,r);}catch(n){let i=this.createErrorResponse(e.uuid,n);s.sender.send(`conduit:response:error:${e.uuid}`,i),this.requestControllers.delete(e.uuid);}}async handleStream(s,e,r,n){try{for await(let i of r){if(n.signal.aborted){s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:!1,requestUuid:e.uuid,error:"Request was cancelled"});return}s.sender.send(`conduit:response:data:${e.uuid}`,i);}s.sender.send(`conduit:response:complete:${e.uuid}`);}catch(i){if(n.signal.aborted)s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let m=this.createErrorResponse(e.uuid,i);s.sender.send(`conduit:response:error:${e.uuid}`,m);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(s,e){let r=this.requestControllers.get(e);r&&(r.abort(),this.requestControllers.delete(e),s.sender.send(`conduit:response:cancelled:${e}`,{success:false,requestUuid:e,error:"Request cancelled by user"}));}createErrorResponse(s,e){return new c(s,e instanceof Error?e.message:"Unknown error",e instanceof Error?e.stack:void 0)}dispose(){for(let[s,e]of this.requestControllers.entries())e.abort(),this.requestControllers.delete(s);electron.ipcMain.removeHandler("conduit:send"),electron.ipcMain.removeHandler("conduit:stream"),electron.ipcMain.removeHandler("conduit:cancel");}};d(p,"ElectronAdapter");var l=p;exports.ElectronAdapter=l;
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
1
  import {app,ipcMain}from'electron';import {BaseResponse}from'@oldzy/conduit';/* conduit - MIT License */
2
- var h=Object.defineProperty;var m=(o,s,e)=>s in o?h(o,s,{enumerable:true,configurable:true,writable:true,value:e}):o[s]=e;var d=(o,s)=>h(o,"name",{value:s,configurable:true});var t=(o,s,e)=>m(o,typeof s!="symbol"?s+"":s,e);var u=class u extends BaseResponse{constructor(e,r,n){super("ERROR_RESPONSE");t(this,"requestUuid");t(this,"error");t(this,"stack");this.requestUuid=e,this.error=r,this.stack=n,this.success=false;}};d(u,"ErrorResponse");var c=u;var p=class p{constructor(){t(this,"name","ElectronAdapter");t(this,"app");t(this,"requestControllers",new Map);}configure(s){s.addSingleton("ElectronApp",app),s.addSingleton("IpcMain",ipcMain);}initialize(s){if(this.app=s,!this.app)throw new Error("Application not initialized");ipcMain.handle("conduit:send",async(e,r)=>await this.handleSendRequest(e,r)),ipcMain.handle("conduit:stream",async(e,r)=>{await this.handleStreamRequest(e,r);}),ipcMain.handle("conduit:cancel",async(e,r)=>{await this.handleCancel(e,r);});}async handleSendRequest(s,e){try{return await this.app.send(e)}catch(r){throw this.createErrorResponse(e.uuid,r)}}async handleStreamRequest(s,e){let r=new AbortController;this.requestControllers.set(e.uuid,r);try{let n=await this.app.stream(e);await this.handleStream(s,e,n,r);}catch(n){let i=this.createErrorResponse(e.uuid,n);s.sender.send(`conduit:response:error:${e.uuid}`,i),this.requestControllers.delete(e.uuid);}}async handleStream(s,e,r,n){try{for await(let i of r){if(n.signal.aborted){s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:!1,requestUuid:e.uuid,error:"Request was cancelled"});return}s.sender.send(`conduit:response:data:${e.uuid}`,i);}s.sender.send(`conduit:response:complete:${e.uuid}`);}catch(i){if(n.signal.aborted)s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let f=this.createErrorResponse(e.uuid,i);s.sender.send(`conduit:response:error:${e.uuid}`,f);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(s,e){let r=this.requestControllers.get(e);r&&(r.abort(),this.requestControllers.delete(e),s.sender.send(`conduit:response:cancelled:${e}`,{success:false,requestUuid:e,error:"Request cancelled by user"}));}createErrorResponse(s,e){return new c(s,e instanceof Error?e.message:"Unknown error",e instanceof Error?e.stack:void 0)}dispose(){for(let[s,e]of this.requestControllers.entries())e.abort(),this.requestControllers.delete(s);ipcMain.removeHandler("conduit:send"),ipcMain.removeHandler("conduit:stream"),ipcMain.removeHandler("conduit:cancel");}};d(p,"ElectronAdapter");var l=p;export{l as ElectronAdapter};
2
+ var h=Object.defineProperty;var f=(o,s,e)=>s in o?h(o,s,{enumerable:true,configurable:true,writable:true,value:e}):o[s]=e;var d=(o,s)=>h(o,"name",{value:s,configurable:true});var t=(o,s,e)=>f(o,typeof s!="symbol"?s+"":s,e);var w=Symbol("ERROR_RESPONSE"),u=class u extends BaseResponse{constructor(e,r,n){super(w);t(this,"requestUuid");t(this,"error");t(this,"stack");this.requestUuid=e,this.error=r,this.stack=n,this.success=false;}};d(u,"ErrorResponse");var c=u;var p=class p{constructor(){t(this,"name","ElectronAdapter");t(this,"app");t(this,"requestControllers",new Map);}configure(s){s.addSingleton("ElectronApp",app),s.addSingleton("IpcMain",ipcMain);}initialize(s){if(this.app=s,!this.app)throw new Error("Application not initialized");ipcMain.handle("conduit:send",async(e,r)=>await this.handleSendRequest(e,r)),ipcMain.handle("conduit:stream",async(e,r)=>{await this.handleStreamRequest(e,r);}),ipcMain.handle("conduit:cancel",async(e,r)=>{await this.handleCancel(e,r);});}async handleSendRequest(s,e){try{return await this.app.send(e)}catch(r){throw this.createErrorResponse(e.uuid,r)}}async handleStreamRequest(s,e){let r=new AbortController;this.requestControllers.set(e.uuid,r);try{let n=await this.app.stream(e);await this.handleStream(s,e,n,r);}catch(n){let i=this.createErrorResponse(e.uuid,n);s.sender.send(`conduit:response:error:${e.uuid}`,i),this.requestControllers.delete(e.uuid);}}async handleStream(s,e,r,n){try{for await(let i of r){if(n.signal.aborted){s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:!1,requestUuid:e.uuid,error:"Request was cancelled"});return}s.sender.send(`conduit:response:data:${e.uuid}`,i);}s.sender.send(`conduit:response:complete:${e.uuid}`);}catch(i){if(n.signal.aborted)s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let m=this.createErrorResponse(e.uuid,i);s.sender.send(`conduit:response:error:${e.uuid}`,m);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(s,e){let r=this.requestControllers.get(e);r&&(r.abort(),this.requestControllers.delete(e),s.sender.send(`conduit:response:cancelled:${e}`,{success:false,requestUuid:e,error:"Request cancelled by user"}));}createErrorResponse(s,e){return new c(s,e instanceof Error?e.message:"Unknown error",e instanceof Error?e.stack:void 0)}dispose(){for(let[s,e]of this.requestControllers.entries())e.abort(),this.requestControllers.delete(s);ipcMain.removeHandler("conduit:send"),ipcMain.removeHandler("conduit:stream"),ipcMain.removeHandler("conduit:cancel");}};d(p,"ElectronAdapter");var l=p;export{l as ElectronAdapter};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oldzy/conduit-electron-adapter",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Electron IPC adapter for @oldzy/conduit - enables seamless communication between main and renderer processes",
5
5
  "author": "oldzy",
6
6
  "license": "MIT",
@@ -36,7 +36,8 @@
36
36
  "test:coverage": "vitest --coverage",
37
37
  "test:watch": "vitest --watch",
38
38
  "lint": "eslint src",
39
- "prepublishOnly": "npm run build:prod && npm test"
39
+ "prepublishOnly": "npm run build:prod && npm test",
40
+ "publish:npm": "npm run build:prod && npm test && npm publish --access public"
40
41
  },
41
42
  "keywords": [
42
43
  "conduit",
@@ -64,7 +65,7 @@
64
65
  "vitest": "^4.0.9"
65
66
  },
66
67
  "dependencies": {
67
- "@oldzy/conduit": "^1.0.3",
68
+ "@oldzy/conduit": "^1.0.4",
68
69
  "electron": "^39.2.7"
69
70
  },
70
71
  "engines": {