MCPcopy Index your code
hub / github.com/ptmt/react-native-macos / JsPackagerClient

Class JsPackagerClient

local-cli/server/util/jsPackagerClient.js:24–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22}
23
24class JsPackagerClient {
25 constructor(url) {
26 this.ws = new WebSocket(url);
27 this.msgCallbacks = new Map();
28
29 this.openPromise = new Promise((resolve, reject) => {
30 this.ws.on('error', error => reject(error));
31 this.ws.on('open', resolve);
32 });
33
34 this.ws.on('message', (data, flags) => {
35 const message = parseMessage(data, flags.binary);
36 const msgCallback = this.msgCallbacks.get(message.id);
37 if (message === undefined || message.id === undefined) {
38 // gracefully ignore wrong messages or broadcasts
39 } else if (msgCallback === undefined) {
40 console.warn(`Response with non-existing message id: '${message.id}'`);
41 } else {
42 if (message.error === undefined) {
43 msgCallback.resolve(message.result);
44 } else {
45 msgCallback.reject(message.error);
46 }
47 }
48 });
49 }
50
51 sendRequest(method, target, params) {
52 return this.openPromise.then(() => new Promise((resolve, reject) => {
53 const messageId = getMessageId();
54 this.msgCallbacks.set(messageId, {resolve: resolve, reject: reject});
55 this.ws.send(
56 JSON.stringify({
57 version: PROTOCOL_VERSION,
58 target: target,
59 method: method,
60 id: messageId,
61 params: params,
62 }),
63 error => {
64 if (error !== undefined) {
65 this.msgCallbacks.delete(messageId);
66 reject(error);
67 }
68 });
69 }));
70 }
71
72 sendNotification(method, target, params) {
73 return this.openPromise.then(() => new Promise((resolve, reject) => {
74 this.ws.send(
75 JSON.stringify({
76 version: PROTOCOL_VERSION,
77 target: target,
78 method: method,
79 params: params,
80 }),
81 error => {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…