@oldzy/conduit-electron-adapter 1.0.8 → 1.0.9

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.d.mts CHANGED
@@ -1,12 +1,16 @@
1
- import { IApplicationAdapter, ServiceCollection, Application, BaseResponse } from '@oldzy/conduit';
1
+ import { IApplicationAdapter, Application, ServiceCollection, BaseResponse } from '@oldzy/conduit';
2
2
  import { IConduitService } from './preload.mjs';
3
3
 
4
4
  declare const ELECTRON_APP_SERVICE_KEY: unique symbol;
5
5
  declare const IPC_MAIN_SERVICE_KEY: unique symbol;
6
6
  declare class ElectronAdapter implements IApplicationAdapter {
7
+ private onInit?;
8
+ private onDispose?;
9
+ private onConfigure?;
7
10
  name: string;
8
11
  private app?;
9
12
  private requestControllers;
13
+ constructor(onInit?: ((app: Application) => void | Promise<void>) | undefined, onDispose?: (() => void | Promise<void>) | undefined, onConfigure?: ((services: ServiceCollection) => void | Promise<void>) | undefined);
10
14
  configure(services: ServiceCollection): void | Promise<void>;
11
15
  initialize(app: Application): void | Promise<void>;
12
16
  private handleSendRequest;
package/dist/index.d.ts CHANGED
@@ -1,12 +1,16 @@
1
- import { IApplicationAdapter, ServiceCollection, Application, BaseResponse } from '@oldzy/conduit';
1
+ import { IApplicationAdapter, Application, ServiceCollection, BaseResponse } from '@oldzy/conduit';
2
2
  import { IConduitService } from './preload.js';
3
3
 
4
4
  declare const ELECTRON_APP_SERVICE_KEY: unique symbol;
5
5
  declare const IPC_MAIN_SERVICE_KEY: unique symbol;
6
6
  declare class ElectronAdapter implements IApplicationAdapter {
7
+ private onInit?;
8
+ private onDispose?;
9
+ private onConfigure?;
7
10
  name: string;
8
11
  private app?;
9
12
  private requestControllers;
13
+ constructor(onInit?: ((app: Application) => void | Promise<void>) | undefined, onDispose?: (() => void | Promise<void>) | undefined, onConfigure?: ((services: ServiceCollection) => void | Promise<void>) | undefined);
10
14
  configure(services: ServiceCollection): void | Promise<void>;
11
15
  initialize(app: Application): void | Promise<void>;
12
16
  private handleSendRequest;
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 f=(t,r,e)=>r in t?h(t,r,{enumerable:true,configurable:true,writable:true,value:e}):t[r]=e;var c=(t,r)=>h(t,"name",{value:r,configurable:true});var o=(t,r,e)=>f(t,typeof r!="symbol"?r+"":r,e);var C=Symbol.for("ERROR_RESPONSE"),l=class l extends conduit.BaseResponse{constructor(e,s,n){super(C);o(this,"requestUuid");o(this,"error");o(this,"stack");this.requestUuid=e,this.error=s,this.stack=n,this.success=false;}};c(l,"ErrorResponse");var d=l;var E=Symbol.for("ElectronApp"),R=Symbol.for("IpcMain"),p=class p{constructor(){o(this,"name","ElectronAdapter");o(this,"app");o(this,"requestControllers",new Map);}configure(r){r.addSingleton(E,electron.app),r.addSingleton(R,electron.ipcMain);}initialize(r){if(this.app=r,!this.app)throw new Error("Application not initialized");electron.ipcMain.handle("conduit:send",async(e,s)=>await this.handleSendRequest(e,s)),electron.ipcMain.handle("conduit:stream",async(e,s)=>{await this.handleStreamRequest(e,s);}),electron.ipcMain.handle("conduit:cancel",async(e,s)=>{await this.handleCancel(e,s);});}async handleSendRequest(r,e){try{return await this.app.send(e)}catch(s){throw this.createErrorResponse(e.uuid,s)}}async handleStreamRequest(r,e){let s=new AbortController;this.requestControllers.set(e.uuid,s),e.AbortSignal=s.signal;try{let n=await this.app.stream(e);await this.handleStream(r,e,n,s);}catch(n){let i=this.createErrorResponse(e.uuid,n);r.sender.send(`conduit:response:error:${e.uuid}`,i),this.requestControllers.delete(e.uuid);}}async handleStream(r,e,s,n){try{for await(let i of s){if(n.signal.aborted){r.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:!1,requestUuid:e.uuid,error:"Request was cancelled"});return}r.sender.send(`conduit:response:data:${e.uuid}`,i);}r.sender.send(`conduit:response:complete:${e.uuid}`);}catch(i){if(n.signal.aborted)r.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let m=this.createErrorResponse(e.uuid,i);r.sender.send(`conduit:response:error:${e.uuid}`,m);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(r,e){let s=this.requestControllers.get(e);s&&(s.abort(),this.requestControllers.delete(e),r.sender.send(`conduit:response:cancelled:${e}`,{success:false,requestUuid:e,error:"Request cancelled by user"}));}createErrorResponse(r,e){return new d(r,e instanceof Error?e.message:"Unknown error",e instanceof Error?e.stack:void 0)}dispose(){for(let[r,e]of this.requestControllers.entries())e.abort(),this.requestControllers.delete(r);electron.ipcMain.removeHandler("conduit:send"),electron.ipcMain.removeHandler("conduit:stream"),electron.ipcMain.removeHandler("conduit:cancel");}};c(p,"ElectronAdapter");var u=p;exports.ELECTRON_APP_SERVICE_KEY=E;exports.ElectronAdapter=u;exports.IPC_MAIN_SERVICE_KEY=R;
2
+ var h=Object.defineProperty;var m=(t,s,e)=>s in t?h(t,s,{enumerable:true,configurable:true,writable:true,value:e}):t[s]=e;var c=(t,s)=>h(t,"name",{value:s,configurable:true});var r=(t,s,e)=>m(t,typeof s!="symbol"?s+"":s,e);var S=Symbol.for("ERROR_RESPONSE"),l=class l extends conduit.BaseResponse{constructor(e,n,o){super(S);r(this,"requestUuid");r(this,"error");r(this,"stack");this.requestUuid=e,this.error=n,this.stack=o,this.success=false;}};c(l,"ErrorResponse");var d=l;var f=Symbol.for("ElectronApp"),E=Symbol.for("IpcMain"),p=class p{constructor(s,e,n){r(this,"onInit");r(this,"onDispose");r(this,"onConfigure");r(this,"name","ElectronAdapter");r(this,"app");r(this,"requestControllers",new Map);this.onInit=s,this.onDispose=e,this.onConfigure=n;}configure(s){if(s.addSingleton(f,electron.app),s.addSingleton(E,electron.ipcMain),this.onConfigure)return this.onConfigure(s)}initialize(s){if(this.app=s,!this.app)throw new Error("Application not initialized");if(electron.ipcMain.handle("conduit:send",async(e,n)=>await this.handleSendRequest(e,n)),electron.ipcMain.handle("conduit:stream",async(e,n)=>{await this.handleStreamRequest(e,n);}),electron.ipcMain.handle("conduit:cancel",async(e,n)=>{await this.handleCancel(e,n);}),this.onInit)return this.onInit(s)}async handleSendRequest(s,e){try{return await this.app.send(e)}catch(n){throw this.createErrorResponse(e.uuid,n)}}async handleStreamRequest(s,e){let n=new AbortController;this.requestControllers.set(e.uuid,n),e.AbortSignal=n.signal;try{let o=await this.app.stream(e);await this.handleStream(s,e,o,n);}catch(o){let a=this.createErrorResponse(e.uuid,o);s.sender.send(`conduit:response:error:${e.uuid}`,a),this.requestControllers.delete(e.uuid);}}async handleStream(s,e,n,o){try{for await(let a of n){if(o.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}`,a);}s.sender.send(`conduit:response:complete:${e.uuid}`);}catch(a){if(o.signal.aborted)s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let R=this.createErrorResponse(e.uuid,a);s.sender.send(`conduit:response:error:${e.uuid}`,R);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(s,e){let n=this.requestControllers.get(e);n&&(n.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 d(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);if(electron.ipcMain.removeHandler("conduit:send"),electron.ipcMain.removeHandler("conduit:stream"),electron.ipcMain.removeHandler("conduit:cancel"),this.onDispose)return this.onDispose()}};c(p,"ElectronAdapter");var u=p;exports.ELECTRON_APP_SERVICE_KEY=f;exports.ElectronAdapter=u;exports.IPC_MAIN_SERVICE_KEY=E;
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 f=(t,r,e)=>r in t?h(t,r,{enumerable:true,configurable:true,writable:true,value:e}):t[r]=e;var c=(t,r)=>h(t,"name",{value:r,configurable:true});var o=(t,r,e)=>f(t,typeof r!="symbol"?r+"":r,e);var C=Symbol.for("ERROR_RESPONSE"),l=class l extends BaseResponse{constructor(e,s,n){super(C);o(this,"requestUuid");o(this,"error");o(this,"stack");this.requestUuid=e,this.error=s,this.stack=n,this.success=false;}};c(l,"ErrorResponse");var d=l;var E=Symbol.for("ElectronApp"),R=Symbol.for("IpcMain"),p=class p{constructor(){o(this,"name","ElectronAdapter");o(this,"app");o(this,"requestControllers",new Map);}configure(r){r.addSingleton(E,app),r.addSingleton(R,ipcMain);}initialize(r){if(this.app=r,!this.app)throw new Error("Application not initialized");ipcMain.handle("conduit:send",async(e,s)=>await this.handleSendRequest(e,s)),ipcMain.handle("conduit:stream",async(e,s)=>{await this.handleStreamRequest(e,s);}),ipcMain.handle("conduit:cancel",async(e,s)=>{await this.handleCancel(e,s);});}async handleSendRequest(r,e){try{return await this.app.send(e)}catch(s){throw this.createErrorResponse(e.uuid,s)}}async handleStreamRequest(r,e){let s=new AbortController;this.requestControllers.set(e.uuid,s),e.AbortSignal=s.signal;try{let n=await this.app.stream(e);await this.handleStream(r,e,n,s);}catch(n){let i=this.createErrorResponse(e.uuid,n);r.sender.send(`conduit:response:error:${e.uuid}`,i),this.requestControllers.delete(e.uuid);}}async handleStream(r,e,s,n){try{for await(let i of s){if(n.signal.aborted){r.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:!1,requestUuid:e.uuid,error:"Request was cancelled"});return}r.sender.send(`conduit:response:data:${e.uuid}`,i);}r.sender.send(`conduit:response:complete:${e.uuid}`);}catch(i){if(n.signal.aborted)r.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let m=this.createErrorResponse(e.uuid,i);r.sender.send(`conduit:response:error:${e.uuid}`,m);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(r,e){let s=this.requestControllers.get(e);s&&(s.abort(),this.requestControllers.delete(e),r.sender.send(`conduit:response:cancelled:${e}`,{success:false,requestUuid:e,error:"Request cancelled by user"}));}createErrorResponse(r,e){return new d(r,e instanceof Error?e.message:"Unknown error",e instanceof Error?e.stack:void 0)}dispose(){for(let[r,e]of this.requestControllers.entries())e.abort(),this.requestControllers.delete(r);ipcMain.removeHandler("conduit:send"),ipcMain.removeHandler("conduit:stream"),ipcMain.removeHandler("conduit:cancel");}};c(p,"ElectronAdapter");var u=p;export{E as ELECTRON_APP_SERVICE_KEY,u as ElectronAdapter,R as IPC_MAIN_SERVICE_KEY};
2
+ var h=Object.defineProperty;var m=(t,s,e)=>s in t?h(t,s,{enumerable:true,configurable:true,writable:true,value:e}):t[s]=e;var c=(t,s)=>h(t,"name",{value:s,configurable:true});var r=(t,s,e)=>m(t,typeof s!="symbol"?s+"":s,e);var S=Symbol.for("ERROR_RESPONSE"),l=class l extends BaseResponse{constructor(e,n,o){super(S);r(this,"requestUuid");r(this,"error");r(this,"stack");this.requestUuid=e,this.error=n,this.stack=o,this.success=false;}};c(l,"ErrorResponse");var d=l;var f=Symbol.for("ElectronApp"),E=Symbol.for("IpcMain"),p=class p{constructor(s,e,n){r(this,"onInit");r(this,"onDispose");r(this,"onConfigure");r(this,"name","ElectronAdapter");r(this,"app");r(this,"requestControllers",new Map);this.onInit=s,this.onDispose=e,this.onConfigure=n;}configure(s){if(s.addSingleton(f,app),s.addSingleton(E,ipcMain),this.onConfigure)return this.onConfigure(s)}initialize(s){if(this.app=s,!this.app)throw new Error("Application not initialized");if(ipcMain.handle("conduit:send",async(e,n)=>await this.handleSendRequest(e,n)),ipcMain.handle("conduit:stream",async(e,n)=>{await this.handleStreamRequest(e,n);}),ipcMain.handle("conduit:cancel",async(e,n)=>{await this.handleCancel(e,n);}),this.onInit)return this.onInit(s)}async handleSendRequest(s,e){try{return await this.app.send(e)}catch(n){throw this.createErrorResponse(e.uuid,n)}}async handleStreamRequest(s,e){let n=new AbortController;this.requestControllers.set(e.uuid,n),e.AbortSignal=n.signal;try{let o=await this.app.stream(e);await this.handleStream(s,e,o,n);}catch(o){let a=this.createErrorResponse(e.uuid,o);s.sender.send(`conduit:response:error:${e.uuid}`,a),this.requestControllers.delete(e.uuid);}}async handleStream(s,e,n,o){try{for await(let a of n){if(o.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}`,a);}s.sender.send(`conduit:response:complete:${e.uuid}`);}catch(a){if(o.signal.aborted)s.sender.send(`conduit:response:cancelled:${e.uuid}`,{success:false,requestUuid:e.uuid,error:"Request was cancelled"});else {let R=this.createErrorResponse(e.uuid,a);s.sender.send(`conduit:response:error:${e.uuid}`,R);}}finally{this.requestControllers.delete(e.uuid);}}async handleCancel(s,e){let n=this.requestControllers.get(e);n&&(n.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 d(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);if(ipcMain.removeHandler("conduit:send"),ipcMain.removeHandler("conduit:stream"),ipcMain.removeHandler("conduit:cancel"),this.onDispose)return this.onDispose()}};c(p,"ElectronAdapter");var u=p;export{f as ELECTRON_APP_SERVICE_KEY,u as ElectronAdapter,E as IPC_MAIN_SERVICE_KEY};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oldzy/conduit-electron-adapter",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
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",