@acala-network/chopsticks 0.9.11-2 → 0.9.12
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/dist/cjs/server.js +32 -11
- package/dist/esm/server.js +32 -11
- package/package.json +3 -3
package/dist/cjs/server.js
CHANGED
|
@@ -62,6 +62,26 @@ const respond = (res, data)=>{
|
|
|
62
62
|
}
|
|
63
63
|
res.end();
|
|
64
64
|
};
|
|
65
|
+
const portInUse = async (port)=>{
|
|
66
|
+
const server = _nodehttp.default.createServer();
|
|
67
|
+
const inUse = await new Promise((resolve)=>{
|
|
68
|
+
server.once('error', (e)=>{
|
|
69
|
+
if (e.code === 'EADDRINUSE') {
|
|
70
|
+
resolve(true);
|
|
71
|
+
} else {
|
|
72
|
+
resolve(false);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
server.once('listening', ()=>{
|
|
76
|
+
server.close();
|
|
77
|
+
resolve(false);
|
|
78
|
+
});
|
|
79
|
+
server.listen(port);
|
|
80
|
+
});
|
|
81
|
+
server.removeAllListeners();
|
|
82
|
+
server.unref();
|
|
83
|
+
return inUse;
|
|
84
|
+
};
|
|
65
85
|
const createServer = async (handler, port)=>{
|
|
66
86
|
let wss;
|
|
67
87
|
let listenPort;
|
|
@@ -120,27 +140,28 @@ const createServer = async (handler, port)=>{
|
|
|
120
140
|
}
|
|
121
141
|
});
|
|
122
142
|
for(let i = 0; i < 10; i++){
|
|
143
|
+
if (port && await portInUse(port + i)) {
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
123
146
|
const preferPort = port ? port + i : undefined;
|
|
124
147
|
wsLogger.debug('Try starting on port %d', preferPort);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
});
|
|
148
|
+
await new Promise((resolve, reject)=>{
|
|
149
|
+
const onError = (e)=>{
|
|
150
|
+
server.close();
|
|
151
|
+
reject(e);
|
|
152
|
+
};
|
|
153
|
+
server.once('error', onError);
|
|
132
154
|
server.listen(preferPort, ()=>{
|
|
133
155
|
wss = new _ws.WebSocketServer({
|
|
134
156
|
server,
|
|
135
157
|
maxPayload: 1024 * 1024 * 100
|
|
136
158
|
});
|
|
137
159
|
listenPort = server.address().port;
|
|
138
|
-
|
|
160
|
+
server.removeListener('error', onError);
|
|
161
|
+
resolve();
|
|
139
162
|
});
|
|
140
163
|
});
|
|
141
|
-
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
164
|
+
break;
|
|
144
165
|
}
|
|
145
166
|
if (!wss || !listenPort) {
|
|
146
167
|
throw new Error(`Failed to create WebsocketServer at port ${port}`);
|
package/dist/esm/server.js
CHANGED
|
@@ -47,6 +47,26 @@ const respond = (res, data)=>{
|
|
|
47
47
|
}
|
|
48
48
|
res.end();
|
|
49
49
|
};
|
|
50
|
+
const portInUse = async (port)=>{
|
|
51
|
+
const server = http.createServer();
|
|
52
|
+
const inUse = await new Promise((resolve)=>{
|
|
53
|
+
server.once('error', (e)=>{
|
|
54
|
+
if (e.code === 'EADDRINUSE') {
|
|
55
|
+
resolve(true);
|
|
56
|
+
} else {
|
|
57
|
+
resolve(false);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
server.once('listening', ()=>{
|
|
61
|
+
server.close();
|
|
62
|
+
resolve(false);
|
|
63
|
+
});
|
|
64
|
+
server.listen(port);
|
|
65
|
+
});
|
|
66
|
+
server.removeAllListeners();
|
|
67
|
+
server.unref();
|
|
68
|
+
return inUse;
|
|
69
|
+
};
|
|
50
70
|
export const createServer = async (handler, port)=>{
|
|
51
71
|
let wss;
|
|
52
72
|
let listenPort;
|
|
@@ -105,27 +125,28 @@ export const createServer = async (handler, port)=>{
|
|
|
105
125
|
}
|
|
106
126
|
});
|
|
107
127
|
for(let i = 0; i < 10; i++){
|
|
128
|
+
if (port && await portInUse(port + i)) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
108
131
|
const preferPort = port ? port + i : undefined;
|
|
109
132
|
wsLogger.debug('Try starting on port %d', preferPort);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
});
|
|
133
|
+
await new Promise((resolve, reject)=>{
|
|
134
|
+
const onError = (e)=>{
|
|
135
|
+
server.close();
|
|
136
|
+
reject(e);
|
|
137
|
+
};
|
|
138
|
+
server.once('error', onError);
|
|
117
139
|
server.listen(preferPort, ()=>{
|
|
118
140
|
wss = new WebSocketServer({
|
|
119
141
|
server,
|
|
120
142
|
maxPayload: 1024 * 1024 * 100
|
|
121
143
|
});
|
|
122
144
|
listenPort = server.address().port;
|
|
123
|
-
|
|
145
|
+
server.removeListener('error', onError);
|
|
146
|
+
resolve();
|
|
124
147
|
});
|
|
125
148
|
});
|
|
126
|
-
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
149
|
+
break;
|
|
129
150
|
}
|
|
130
151
|
if (!wss || !listenPort) {
|
|
131
152
|
throw new Error(`Failed to create WebsocketServer at port ${port}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acala-network/chopsticks",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.12",
|
|
4
4
|
"author": "Acala Developers <hello@acala.network>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"bin": "./chopsticks.cjs",
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"docs:prep": "typedoc"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@acala-network/chopsticks-core": "0.9.
|
|
17
|
-
"@acala-network/chopsticks-db": "0.9.
|
|
16
|
+
"@acala-network/chopsticks-core": "0.9.12",
|
|
17
|
+
"@acala-network/chopsticks-db": "0.9.12",
|
|
18
18
|
"@pnpm/npm-conf": "^2.2.2",
|
|
19
19
|
"@polkadot/api-augment": "^10.11.2",
|
|
20
20
|
"@polkadot/types": "^10.11.2",
|