diff --git a/ElectronNET.API/Process.cs b/ElectronNET.API/Process.cs
index daa692b..887eda3 100644
--- a/ElectronNET.API/Process.cs
+++ b/ElectronNET.API/Process.cs
@@ -1,5 +1,7 @@
using System.Threading;
using System.Threading.Tasks;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
namespace ElectronNET.API
{
@@ -34,27 +36,92 @@ namespace ElectronNET.API
private static readonly object _syncRoot = new();
+ ///
+ /// The process.execPath property returns the absolute pathname of the executable that started the Node.js process. Symbolic links, if any, are resolved.
+ ///
+ ///
+ ///
+ /// var path = await Electron.Process.ExecPathAsync;
+ ///
+ ///
+ public Task ExecPathAsync
+ {
+ get
+ {
+ CancellationToken cancellationToken = new();
+ cancellationToken.ThrowIfCancellationRequested();
+
+ var taskCompletionSource = new TaskCompletionSource();
+ using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled()))
+ {
+ BridgeConnector.Socket.On("process-execPathCompleted", (text) =>
+ {
+ BridgeConnector.Socket.Off("process-execPathCompleted");
+ taskCompletionSource.SetResult((string) text);
+ });
+
+ BridgeConnector.Socket.Emit("process-execPath");
+
+ return taskCompletionSource.Task;
+ }
+ }
+ }
+
///
/// TBD
///
///
- public async Task GetExecPathAsync(CancellationToken cancellationToken = default)
+ public Task ArgvAsync
{
- cancellationToken.ThrowIfCancellationRequested();
-
- var taskCompletionSource = new TaskCompletionSource();
- using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled()))
+ get
{
- BridgeConnector.Socket.On("process-execPathCompleted", (text) =>
+ CancellationToken cancellationToken = new();
+ cancellationToken.ThrowIfCancellationRequested();
+
+ var taskCompletionSource = new TaskCompletionSource();
+ using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled()))
{
- BridgeConnector.Socket.Off("process-execPathCompleted");
- taskCompletionSource.SetResult((string) text);
- });
+ BridgeConnector.Socket.On("process-argvCompleted", (value) =>
+ {
+ BridgeConnector.Socket.Off("process-argvCompleted");
+ taskCompletionSource.SetResult( ((JArray)value).ToObject() );
+ });
- BridgeConnector.Socket.Emit("process-execPath");
+ BridgeConnector.Socket.Emit("process-argv");
- return await taskCompletionSource.Task
- .ConfigureAwait(false);
+ return taskCompletionSource.Task;
+ }
+ }
+ }
+
+ ///
+ /// The process.execPath property returns the absolute pathname of the executable that started the Node.js process. Symbolic links, if any, are resolved.
+ ///
+ ///
+ ///
+ /// var path = await Electron.Process.ExecPathAsync;
+ ///
+ ///
+ public Task TypeAsync
+ {
+ get
+ {
+ CancellationToken cancellationToken = new();
+ cancellationToken.ThrowIfCancellationRequested();
+
+ var taskCompletionSource = new TaskCompletionSource();
+ using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled()))
+ {
+ BridgeConnector.Socket.On("process-typeCompleted", (text) =>
+ {
+ BridgeConnector.Socket.Off("process-typeCompleted");
+ taskCompletionSource.SetResult((string) text);
+ });
+
+ BridgeConnector.Socket.Emit("process-type");
+
+ return taskCompletionSource.Task;
+ }
}
}
}
diff --git a/ElectronNET.Host/api/process.js b/ElectronNET.Host/api/process.js
index 80bdaf7..00c929f 100644
--- a/ElectronNET.Host/api/process.js
+++ b/ElectronNET.Host/api/process.js
@@ -6,5 +6,13 @@ module.exports = (socket) => {
const value = process.execPath;
electronSocket.emit('process-execPathCompleted', value);
});
+ socket.on('process-argv', () => {
+ const value = process.argv;
+ electronSocket.emit('process-argvCompleted', value);
+ });
+ socket.on('process-type', () => {
+ const value = process.type;
+ electronSocket.emit('process-typeCompleted', value);
+ });
};
//# sourceMappingURL=process.js.map
\ No newline at end of file
diff --git a/ElectronNET.Host/api/process.js.map b/ElectronNET.Host/api/process.js.map
index e2e659a..1e69e30 100644
--- a/ElectronNET.Host/api/process.js.map
+++ b/ElectronNET.Host/api/process.js.map
@@ -1 +1 @@
-{"version":3,"file":"process.js","sourceRoot":"","sources":["process.ts"],"names":[],"mappings":";AACA,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"process.js","sourceRoot":"","sources":["process.ts"],"names":[],"mappings":";AACA,IAAI,cAAc,CAAC;AAEnB,iBAAS,CAAC,MAAc,EAAE,EAAE;IACxB,cAAc,GAAG,MAAM,CAAC;IAExB,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC/B,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3B,cAAc,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
\ No newline at end of file
diff --git a/ElectronNET.Host/api/process.ts b/ElectronNET.Host/api/process.ts
index a559869..97c0569 100644
--- a/ElectronNET.Host/api/process.ts
+++ b/ElectronNET.Host/api/process.ts
@@ -8,4 +8,14 @@ export = (socket: Socket) => {
const value = process.execPath;
electronSocket.emit('process-execPathCompleted', value);
});
+
+ socket.on('process-argv', () => {
+ const value = process.argv;
+ electronSocket.emit('process-argvCompleted', value);
+ });
+
+ socket.on('process-type', () => {
+ const value = process.type;
+ electronSocket.emit('process-typeCompleted', value);
+ });
};