@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 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/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 });
@@ -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) => void;
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
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-wa/wa-automate",
3
- "version": "4.34.2",
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",