@open-wa/wa-automate 4.34.2 → 4.35.0
Sign up to get free protection for your applications and to get access to all the features.
- package/bin/server.js +39 -2
- package/dist/cli/cli-options.js +6 -0
- package/dist/cli/index.js +10 -0
- package/dist/utils/tools.d.ts +1 -1
- package/dist/utils/tools.js +9 -2
- package/package.json +1 -1
package/bin/server.js
CHANGED
@@ -1,3 +1,40 @@
|
|
1
1
|
#! /usr/bin/env node
|
2
|
-
|
3
|
-
|
2
|
+
const pm2Index = process.argv.findIndex(arg => arg === "--pm2");
|
3
|
+
const sIdIndex = process.argv.findIndex(arg => arg === "--session-id");
|
4
|
+
const nameIndex = process.argv.findIndex(arg => arg === "--name");
|
5
|
+
const getVal = (index) => index !== -1 && process.argv[index + 1]
|
6
|
+
const getBool = (index) => !((index !== -1 && process.argv[index + 1]) === false)
|
7
|
+
const procName = getVal(sIdIndex || nameIndex) || "@OPEN-WA EASY API";
|
8
|
+
const CLI = '../dist/cli'
|
9
|
+
async function start() {
|
10
|
+
if (getBool(pm2Index)) {
|
11
|
+
const { spawn } = require("child_process");
|
12
|
+
try {
|
13
|
+
const pm2 = spawn('pm2');
|
14
|
+
await new Promise((resolve, reject) => {
|
15
|
+
pm2.on('error', reject);
|
16
|
+
pm2.stdout.on('data', () => resolve(true));
|
17
|
+
})
|
18
|
+
const pm2Flags = (getVal(pm2Index) || "").split(" ");
|
19
|
+
const cliFlags = (process.argv.slice(2) || []);
|
20
|
+
spawn("pm2", [
|
21
|
+
"start",
|
22
|
+
require.resolve(CLI),
|
23
|
+
'--name',
|
24
|
+
procName,
|
25
|
+
...pm2Flags,
|
26
|
+
'--',
|
27
|
+
...cliFlags.filter(x=>!pm2Flags.includes(x))
|
28
|
+
], {
|
29
|
+
stdio: "inherit",
|
30
|
+
detached: true
|
31
|
+
})
|
32
|
+
} catch (error) {
|
33
|
+
if (error.errorno === -2) console.error("pm2 not found. Please install with the following command: npm install -g pm2");
|
34
|
+
}
|
35
|
+
} else {
|
36
|
+
require(CLI);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
start()
|
package/dist/cli/cli-options.js
CHANGED
@@ -234,6 +234,12 @@ exports.optionList = [{
|
|
234
234
|
type: Boolean,
|
235
235
|
description: "Expose a tunnel to your EASY API session - this is for testing and it is unsecured."
|
236
236
|
},
|
237
|
+
{
|
238
|
+
name: 'pm2',
|
239
|
+
type: Boolean,
|
240
|
+
typeLabel: '{yellow {underline "--max-memory-restart 300M"}}',
|
241
|
+
description: "Offload the EASY API to local instance of pm2. You can add pm2 specific arguments also if you want."
|
242
|
+
},
|
237
243
|
{
|
238
244
|
name: 'help',
|
239
245
|
description: 'Print this usage guide.'
|
package/dist/cli/index.js
CHANGED
@@ -186,6 +186,16 @@ function start() {
|
|
186
186
|
(0, index_1.processSendData)({ port: PORT });
|
187
187
|
yield ready(Object.assign(Object.assign(Object.assign(Object.assign({}, cliConfig), createConfig), client.getSessionInfo()), { hostAccountNumber: yield client.getHostNumber() }));
|
188
188
|
}));
|
189
|
+
process.on('message', function (data) {
|
190
|
+
var _a;
|
191
|
+
return __awaiter(this, void 0, void 0, function* () {
|
192
|
+
if (((_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.command) === "port_report") {
|
193
|
+
const response = { port: PORT };
|
194
|
+
(0, index_1.processSendData)(response);
|
195
|
+
return response;
|
196
|
+
}
|
197
|
+
});
|
198
|
+
});
|
189
199
|
if (cliConfig.tunnel) {
|
190
200
|
spinner.info(`\n• Setting up external tunnel`);
|
191
201
|
const tunnel = yield (0, localtunnel_1.default)({ port: PORT });
|
package/dist/utils/tools.d.ts
CHANGED
@@ -67,7 +67,7 @@ export declare function timePromise(fn: () => Promise<any>): Promise<string>;
|
|
67
67
|
* @param {any} data - The data to be sent to the parent process.
|
68
68
|
* @returns Nothing.
|
69
69
|
*/
|
70
|
-
export declare const processSendData: (data?: any) =>
|
70
|
+
export declare const processSendData: (data?: any) => boolean;
|
71
71
|
/**
|
72
72
|
* It generates a link to the GitHub issue template for the current session
|
73
73
|
* @param {ConfigObject} config - the config object
|
package/dist/utils/tools.js
CHANGED
@@ -212,11 +212,18 @@ exports.timePromise = timePromise;
|
|
212
212
|
* @returns Nothing.
|
213
213
|
*/
|
214
214
|
const processSendData = (data = {}) => {
|
215
|
-
process.send({
|
215
|
+
const sd = () => process.send({
|
216
216
|
type: 'process:msg',
|
217
217
|
data
|
218
|
+
}, (error) => {
|
219
|
+
if (error) {
|
220
|
+
console.error(error);
|
221
|
+
}
|
218
222
|
});
|
219
|
-
return;
|
223
|
+
return sd();
|
224
|
+
// return await new Promise((resolve, reject)=>{
|
225
|
+
// sd(resolve,reject)
|
226
|
+
// })
|
220
227
|
};
|
221
228
|
exports.processSendData = processSendData;
|
222
229
|
/**
|
package/package.json
CHANGED