Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/typings/electron-cross-app-ipc.d.ts
13379 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
/**
7
* Type definitions for Electron's crossAppIPC module (custom build).
8
*
9
* This module provides secure IPC between an Electron host app and an
10
* embedded Electron app (MiniApp) within nested bundles. Communication
11
* is authenticated via code-signature verification (macOS: Mach ports,
12
* Windows: named pipes).
13
*/
14
15
declare namespace Electron {
16
17
interface CrossAppIPCMessageEvent {
18
/** The deserialized message data sent by the peer app. */
19
data: any;
20
/** Array of transferred MessagePortMain objects (if any). */
21
ports: Electron.MessagePortMain[];
22
}
23
24
type CrossAppIPCDisconnectReason =
25
| 'peer-disconnected'
26
| 'handshake-failed'
27
| 'connection-failed'
28
| 'connection-timeout';
29
30
interface CrossAppIPC extends NodeJS.EventEmitter {
31
on(event: 'connected', listener: () => void): this;
32
once(event: 'connected', listener: () => void): this;
33
removeListener(event: 'connected', listener: () => void): this;
34
35
on(event: 'message', listener: (messageEvent: CrossAppIPCMessageEvent) => void): this;
36
once(event: 'message', listener: (messageEvent: CrossAppIPCMessageEvent) => void): this;
37
removeListener(event: 'message', listener: (messageEvent: CrossAppIPCMessageEvent) => void): this;
38
39
on(event: 'disconnected', listener: (reason: CrossAppIPCDisconnectReason) => void): this;
40
once(event: 'disconnected', listener: (reason: CrossAppIPCDisconnectReason) => void): this;
41
removeListener(event: 'disconnected', listener: (reason: CrossAppIPCDisconnectReason) => void): this;
42
43
connect(): void;
44
close(): void;
45
postMessage(message: any, transferables?: Electron.MessagePortMain[]): void;
46
readonly connected: boolean;
47
readonly isServer: boolean;
48
}
49
50
interface CrossAppIPCModule {
51
createCrossAppIPC(): CrossAppIPC;
52
}
53
54
namespace Main {
55
const crossAppIPC: CrossAppIPCModule | undefined;
56
}
57
58
namespace CrossProcessExports {
59
const crossAppIPC: CrossAppIPCModule | undefined;
60
}
61
}
62
63