@open-wa/wa-automate 4.34.2 → 4.35.0
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/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