@lvce-editor/pty-host 0.22.1 → 0.22.3
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/package.json +4 -4
- package/src/parts/HandleElectronMessagePort/HandleElectronMessagePort.js +0 -1
- package/src/parts/HandleIpc/HandleIpc.js +3 -0
- package/src/parts/HandleNodeMessagePort/HandleNodeMessagePort.js +0 -1
- package/src/parts/HandleWebSocket/HandleWebSocket.js +2 -5
- package/src/parts/IpcChildWithElectronMessagePort/IpcChildWithElectronMessagePort.js +3 -0
- package/src/parts/IpcChildWithNodeMessagePort/IpcChildWithNodeMessagePort.js +3 -0
- package/src/parts/IpcChildWithWebSocket/IpcChildWithWebSocket.js +11 -7
- package/src/parts/WebSocketServer/WebSocketServer.js +1 -24
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lvce-editor/pty-host",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@lvce-editor/json-rpc": "^1.0.0",
|
|
20
|
-
"@lvce-editor/pretty-error": "^1.
|
|
20
|
+
"@lvce-editor/pretty-error": "^1.4.0",
|
|
21
21
|
"@lvce-editor/verror": "^1.1.2",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
22
|
+
"@lvce-editor/web-socket-server": "1.1.0",
|
|
23
|
+
"debug": "^4.3.4"
|
|
24
24
|
},
|
|
25
25
|
"optionalDependencies": {
|
|
26
26
|
"node-pty": "^1.0.0"
|
|
@@ -18,4 +18,7 @@ export const handleIpc = (ipc) => {
|
|
|
18
18
|
return JsonRpc.handleJsonRpcMessage(ipc, message, Command.execute, Callback.resolve, preparePrettyError, logError, RequiresSocket.requiresSocket)
|
|
19
19
|
}
|
|
20
20
|
ipc.on('message', handleMessage)
|
|
21
|
+
if (ipc.start) {
|
|
22
|
+
ipc.start()
|
|
23
|
+
}
|
|
21
24
|
}
|
|
@@ -6,13 +6,10 @@ import * as IpcChildType from '../IpcChildType/IpcChildType.js'
|
|
|
6
6
|
export const handleWebSocket = async (request, handle) => {
|
|
7
7
|
Assert.object(request)
|
|
8
8
|
Assert.object(handle)
|
|
9
|
-
const WebSocketServer = await import('../WebSocketServer/WebSocketServer.js')
|
|
10
|
-
const webSocket = await WebSocketServer.handleUpgrade(request, handle)
|
|
11
|
-
webSocket.pause()
|
|
12
9
|
const ipc = await IpcChild.listen({
|
|
13
10
|
method: IpcChildType.WebSocket,
|
|
14
|
-
|
|
11
|
+
request,
|
|
12
|
+
handle,
|
|
15
13
|
})
|
|
16
14
|
HandleIpc.handleIpc(ipc)
|
|
17
|
-
webSocket.resume()
|
|
18
15
|
}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as GetFirstWebSocketEvent from '../GetFirstWebSocketEvent/GetFirstWebSocketEvent.js'
|
|
2
2
|
import { IpcError } from '../IpcError/IpcError.js'
|
|
3
|
-
import * as IsWebSocket from '../IsWebSocket/IsWebSocket.js'
|
|
4
3
|
import * as IsWebSocketOpen from '../IsWebSocketOpen/IsWebSocketOpen.js'
|
|
5
4
|
import * as WebSocketSerialization from '../WebSocketSerialization/WebSocketSerialization.js'
|
|
5
|
+
import * as WebSocketServer from '../WebSocketServer/WebSocketServer.js'
|
|
6
6
|
|
|
7
|
-
export const listen = async ({
|
|
8
|
-
if (!
|
|
9
|
-
throw new IpcError('
|
|
7
|
+
export const listen = async ({ request, handle }) => {
|
|
8
|
+
if (!request) {
|
|
9
|
+
throw new IpcError('request must be defined')
|
|
10
10
|
}
|
|
11
|
-
if (!
|
|
12
|
-
throw new IpcError(
|
|
11
|
+
if (!handle) {
|
|
12
|
+
throw new IpcError('handle must be defined')
|
|
13
13
|
}
|
|
14
|
+
const webSocket = await WebSocketServer.handleUpgrade(request, handle)
|
|
15
|
+
webSocket.pause()
|
|
14
16
|
if (!IsWebSocketOpen.isWebSocketOpen(webSocket)) {
|
|
15
17
|
const { type, event } = await GetFirstWebSocketEvent.getFirstWebSocketEvent(webSocket)
|
|
16
|
-
console.log({ type, event })
|
|
17
18
|
}
|
|
18
19
|
return webSocket
|
|
19
20
|
}
|
|
@@ -48,5 +49,8 @@ export const wrap = (webSocket) => {
|
|
|
48
49
|
dispose() {
|
|
49
50
|
this.webSocket.close()
|
|
50
51
|
},
|
|
52
|
+
start() {
|
|
53
|
+
this.webSocket.resume()
|
|
54
|
+
},
|
|
51
55
|
}
|
|
52
56
|
}
|
|
@@ -1,24 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import * as _ws from 'ws'
|
|
3
|
-
|
|
4
|
-
// workaround for jest or node bug
|
|
5
|
-
const WebSocketServer = _ws.WebSocketServer
|
|
6
|
-
? _ws.WebSocketServer
|
|
7
|
-
: // @ts-ignore
|
|
8
|
-
_ws.default.WebSocketServer
|
|
9
|
-
|
|
10
|
-
const webSocketServer = new WebSocketServer({
|
|
11
|
-
noServer: true,
|
|
12
|
-
|
|
13
|
-
// TODO not sure if ws compress is working at all
|
|
14
|
-
// perMessageDeflate: true
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
export const handleUpgrade = (request, socket) => {
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
const upgradeCallback = (ws) => {
|
|
20
|
-
resolve(ws)
|
|
21
|
-
}
|
|
22
|
-
webSocketServer.handleUpgrade(request, socket, Buffer.alloc(0), upgradeCallback)
|
|
23
|
-
})
|
|
24
|
-
}
|
|
1
|
+
export * from '@lvce-editor/web-socket-server'
|