@open-wa/wa-automate 4.34.4 → 4.35.0

Sign up to get free protection for your applications and to get access to all the features.
package/bin/server.js CHANGED
@@ -1,3 +1,40 @@
1
1
  #! /usr/bin/env node
2
- // require('./index.js');
3
- require('../dist/cli');
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()
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-wa/wa-automate",
3
- "version": "4.34.4",
3
+ "version": "4.35.0",
4
4
  "licenseCheckUrl": "https://funcs.openwa.dev/license-check",
5
5
  "brokenMethodReportUrl": "https://funcs.openwa.dev/report-bm",
6
6
  "patches": "https://cdn.openwa.dev/patches.json",