@open-wa/wa-automate 4.34.4 → 4.35.2
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/bin/server.js +39 -2
- package/dist/cli/cli-options.js +6 -0
- package/dist/controllers/initializer.js +6 -1
- 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.'
|
@@ -314,7 +314,10 @@ function create(config = {}) {
|
|
314
314
|
yield (0, exports.timeout)(5000);
|
315
315
|
}
|
316
316
|
//@ts-ignore
|
317
|
-
const VALID_SESSION = yield waPage.waitForFunction(`window.Store && window.Store.Msg ? true : false`, { timeout: 9000, polling: 200 }).catch(e =>
|
317
|
+
const VALID_SESSION = yield waPage.waitForFunction(`window.Store && window.Store.Msg ? true : false`, { timeout: 9000, polling: 200 }).catch((e) => __awaiter(this, void 0, void 0, function* () {
|
318
|
+
logging_1.log.error("Valid session check failed", e);
|
319
|
+
return false;
|
320
|
+
}));
|
318
321
|
if (VALID_SESSION) {
|
319
322
|
/**
|
320
323
|
* Session is valid, attempt to preload patches
|
@@ -428,6 +431,8 @@ function create(config = {}) {
|
|
428
431
|
return client;
|
429
432
|
}
|
430
433
|
else {
|
434
|
+
const storeKeys = yield waPage.evaluate(`Object.keys(window.Store || {})`);
|
435
|
+
logging_1.log.info("Store keys", storeKeys);
|
431
436
|
spinner.fail('The session is invalid. Retrying');
|
432
437
|
yield (0, browser_1.kill)(waPage);
|
433
438
|
return yield create(config);
|
package/package.json
CHANGED