diff --git a/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/.gitignore b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/.gitignore new file mode 100644 index 0000000..984dc92 --- /dev/null +++ b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/.gitignore @@ -0,0 +1,3 @@ +node_modules +*.js +*.js.map diff --git a/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/connector.ts b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/connector.ts index ed776ad..295ba95 100644 --- a/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/connector.ts +++ b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/connector.ts @@ -7,12 +7,15 @@ export class Connector { on(key: string, javaScriptCode: Function): void { this.socket.on(key, (...args: any[]) => { const id: string = args.pop(); - const done = (result: any) => { - this.socket.emit(id, result); - }; - - args = [...args, done]; - javaScriptCode(...args); + try { + javaScriptCode(...args, (data) => { + if (data) { + this.socket.emit(`${key}Complete${id}`, data); + } + }); + } catch (error) { + this.socket.emit(`${key}Error${id}`, `Host Hook Exception`, error); + } }); } } diff --git a/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/package.json b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/package.json new file mode 100644 index 0000000..069cbac --- /dev/null +++ b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/package.json @@ -0,0 +1,12 @@ +{ + "name": "electron-host-hook", + "version": "1.0.0", + "description": "Connector for Electron.NET projects.", + "main": "index.js", + "dependencies": { + "socket.io": "^4.8.1" + }, + "devDependencies": { + "typescript": "^5.9.3" + } +} diff --git a/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/tsconfig.json b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/tsconfig.json index fbf08f2..db8cccc 100644 --- a/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/tsconfig.json +++ b/src/ElectronNET.Samples.ElectronHostHook/ElectronHostHook/tsconfig.json @@ -1,12 +1,9 @@ { "compilerOptions": { "module": "commonjs", - "noImplicitAny": false, - "noEmitOnError": true, - "removeComments": false, + "target": "ES2019", "sourceMap": true, - "target": "es5", - "lib": ["es2015", "dom"] + "skipLibCheck": true }, - "exclude": ["node_modules", "wwwroot"] + "exclude": ["node_modules"] } diff --git a/src/ElectronNET.Samples.ElectronHostHook/Program.cs b/src/ElectronNET.Samples.ElectronHostHook/Program.cs index 241221e..ee8fa81 100644 --- a/src/ElectronNET.Samples.ElectronHostHook/Program.cs +++ b/src/ElectronNET.Samples.ElectronHostHook/Program.cs @@ -8,7 +8,11 @@ namespace ElectronNET.Samples.ElectronHostHook { var builder = WebApplication.CreateBuilder(args); - builder.WebHost.UseElectron(args); + builder.WebHost.UseElectron(args, async () => + { + var window = await Electron.WindowManager.CreateWindowAsync(); + }); + builder.Services.AddElectron(); builder.Services.AddControllersWithViews(); @@ -21,14 +25,6 @@ namespace ElectronNET.Samples.ElectronHostHook name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); - if (HybridSupport.IsElectronActive) - { - Task.Run(async () => - { - var window = await Electron.WindowManager.CreateWindowAsync(); - }); - } - app.Run(); } } diff --git a/src/ElectronNET.Samples.ElectronHostHook/Views/Home/Index.cshtml b/src/ElectronNET.Samples.ElectronHostHook/Views/Home/Index.cshtml index 142d015..f0f3be9 100644 --- a/src/ElectronNET.Samples.ElectronHostHook/Views/Home/Index.cshtml +++ b/src/ElectronNET.Samples.ElectronHostHook/Views/Home/Index.cshtml @@ -4,8 +4,9 @@ } - + + ElectronHostHook Sample