Skip to content

Commit ff1fece

Browse files
rosen-vladimirovPlamen5kov
authored andcommitted
Fix debug ios command (#2669)
Currently `tns debug ios` fails as we have changed the code to and now socketFactory returns a promise. Fix the implementation so the Safari debugger will work.
1 parent d2bb007 commit ff1fece

File tree

1 file changed

+26
-30
lines changed

1 file changed

+26
-30
lines changed

lib/device-sockets/ios/socket-proxy-factory.ts

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,20 @@ import { PacketStream } from "./packet-stream";
22
import * as net from "net";
33
import * as ws from "ws";
44
import temp = require("temp");
5-
import * as helpers from "../../common/helpers";
65

76
export class SocketProxyFactory implements ISocketProxyFactory {
87
constructor(private $logger: ILogger,
98
private $config: IConfiguration,
109
private $options: IOptions) { }
1110

12-
public createTCPSocketProxy(factory: () => net.Socket): any {
13-
let socketFactory = (callback: (_socket: net.Socket) => void) => helpers.connectEventually(factory, callback);
14-
11+
public createTCPSocketProxy(factory: () => Promise<net.Socket>): any {
1512
this.$logger.info("\nSetting up proxy...\nPress Ctrl + C to terminate, or disconnect.\n");
1613

1714
let server = net.createServer({
1815
allowHalfOpen: true
1916
});
2017

21-
server.on("connection", (frontendSocket: net.Socket) => {
18+
server.on("connection", async (frontendSocket: net.Socket) => {
2219
this.$logger.info("Frontend client connected.");
2320

2421
frontendSocket.on("end", () => {
@@ -28,33 +25,32 @@ export class SocketProxyFactory implements ISocketProxyFactory {
2825
}
2926
});
3027

31-
socketFactory((backendSocket: net.Socket) => {
32-
this.$logger.info("Backend socket created.");
28+
const backendSocket: net.Socket = await factory();
29+
this.$logger.info("Backend socket created.");
30+
31+
backendSocket.on("end", () => {
32+
this.$logger.info("Backend socket closed!");
33+
if (!(this.$config.debugLivesync && this.$options.watch)) {
34+
process.exit(0);
35+
}
36+
});
3337

34-
backendSocket.on("end", () => {
35-
this.$logger.info("Backend socket closed!");
36-
if (!(this.$config.debugLivesync && this.$options.watch)) {
37-
process.exit(0);
38-
}
39-
});
40-
41-
frontendSocket.on("close", () => {
42-
console.log("frontend socket closed");
43-
if (!(<any>backendSocket).destroyed) {
44-
backendSocket.destroy();
45-
}
46-
});
47-
backendSocket.on("close", () => {
48-
console.log("backend socket closed");
49-
if (!(<any>frontendSocket).destroyed) {
50-
frontendSocket.destroy();
51-
}
52-
});
53-
54-
backendSocket.pipe(frontendSocket);
55-
frontendSocket.pipe(backendSocket);
56-
frontendSocket.resume();
38+
frontendSocket.on("close", () => {
39+
console.log("frontend socket closed");
40+
if (!(<any>backendSocket).destroyed) {
41+
backendSocket.destroy();
42+
}
5743
});
44+
backendSocket.on("close", () => {
45+
console.log("backend socket closed");
46+
if (!(<any>frontendSocket).destroyed) {
47+
frontendSocket.destroy();
48+
}
49+
});
50+
51+
backendSocket.pipe(frontendSocket);
52+
frontendSocket.pipe(backendSocket);
53+
frontendSocket.resume();
5854
});
5955

6056
let socketFileLocation = temp.path({ suffix: ".sock" });

0 commit comments

Comments
 (0)