tnp-helpers 18.0.14 → 18.0.15

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.
Files changed (115) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-cli-worker-config.mjs +33 -0
  3. package/browser/esm2022/lib/base/base-cli-worker-controller.mjs +87 -0
  4. package/browser/esm2022/lib/base/base-cli-worker.mjs +303 -0
  5. package/browser/esm2022/lib/base/base-db.mjs +2 -1
  6. package/browser/esm2022/lib/base/base-project-resolver.mjs +9 -6
  7. package/browser/esm2022/lib/base/base-project.mjs +2 -2
  8. package/browser/esm2022/lib/base/base-quick-fixes.mjs +1 -1
  9. package/browser/esm2022/lib/base/base-release-process.mjs +1 -1
  10. package/browser/esm2022/lib/base/core-project.mjs +1 -1
  11. package/browser/esm2022/lib/base/ports-worker.mjs +107 -0
  12. package/browser/esm2022/lib/models.mjs +1 -1
  13. package/browser/fesm2022/tnp-helpers.mjs +523 -7
  14. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  15. package/browser/lib/base/base-cli-worker-config.d.ts +24 -0
  16. package/browser/lib/base/base-cli-worker-controller.d.ts +14 -0
  17. package/browser/lib/base/base-cli-worker.d.ts +47 -0
  18. package/browser/lib/base/base-project-resolver.d.ts +5 -6
  19. package/browser/lib/base/base-project.d.ts +7 -7
  20. package/browser/lib/base/base-quick-fixes.d.ts +1 -1
  21. package/browser/lib/base/base-release-process.d.ts +1 -1
  22. package/browser/lib/base/core-project.d.ts +2 -2
  23. package/browser/lib/base/ports-worker.d.ts +11 -0
  24. package/client/esm2022/lib/base/base-cli-worker-config.mjs +33 -0
  25. package/client/esm2022/lib/base/base-cli-worker-controller.mjs +87 -0
  26. package/client/esm2022/lib/base/base-cli-worker.mjs +303 -0
  27. package/client/esm2022/lib/base/base-db.mjs +2 -1
  28. package/client/esm2022/lib/base/base-project-resolver.mjs +9 -6
  29. package/client/esm2022/lib/base/base-project.mjs +2 -2
  30. package/client/esm2022/lib/base/base-quick-fixes.mjs +1 -1
  31. package/client/esm2022/lib/base/base-release-process.mjs +1 -1
  32. package/client/esm2022/lib/base/core-project.mjs +1 -1
  33. package/client/esm2022/lib/base/ports-worker.mjs +107 -0
  34. package/client/esm2022/lib/models.mjs +1 -1
  35. package/client/fesm2022/tnp-helpers.mjs +523 -7
  36. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  37. package/client/lib/base/base-cli-worker-config.d.ts +24 -0
  38. package/client/lib/base/base-cli-worker-controller.d.ts +14 -0
  39. package/client/lib/base/base-cli-worker.d.ts +47 -0
  40. package/client/lib/base/base-project-resolver.d.ts +5 -6
  41. package/client/lib/base/base-project.d.ts +7 -7
  42. package/client/lib/base/base-quick-fixes.d.ts +1 -1
  43. package/client/lib/base/base-release-process.d.ts +1 -1
  44. package/client/lib/base/core-project.d.ts +2 -2
  45. package/client/lib/base/ports-worker.d.ts +11 -0
  46. package/lib/base/base-cli-worker-config.d.ts +23 -0
  47. package/lib/base/base-cli-worker-config.js +45 -0
  48. package/lib/base/base-cli-worker-config.js.map +1 -0
  49. package/lib/base/base-cli-worker-controller.d.ts +13 -0
  50. package/lib/base/base-cli-worker-controller.js +114 -0
  51. package/lib/base/base-cli-worker-controller.js.map +1 -0
  52. package/lib/base/base-cli-worker.d.ts +46 -0
  53. package/lib/base/base-cli-worker.js +437 -0
  54. package/lib/base/base-cli-worker.js.map +1 -0
  55. package/lib/base/base-command-line.backend.d.ts +2 -0
  56. package/lib/base/base-command-line.backend.js +39 -0
  57. package/lib/base/base-command-line.backend.js.map +1 -1
  58. package/lib/base/base-db.d.ts +1 -1
  59. package/lib/base/base-db.js +2 -2
  60. package/lib/base/base-db.js.map +1 -1
  61. package/lib/base/base-git.js +2 -2
  62. package/lib/base/base-git.js.map +1 -1
  63. package/lib/base/base-linked-projects.js +1 -1
  64. package/lib/base/base-linked-projects.js.map +1 -1
  65. package/lib/base/base-project-resolver.d.ts +5 -6
  66. package/lib/base/base-project-resolver.js +14 -5
  67. package/lib/base/base-project-resolver.js.map +1 -1
  68. package/lib/base/base-project.d.ts +7 -7
  69. package/lib/base/base-project.js +1 -1
  70. package/lib/base/base-project.js.map +1 -1
  71. package/lib/base/base-quick-fixes.d.ts +1 -1
  72. package/lib/base/base-release-process.d.ts +1 -1
  73. package/lib/base/config-database.js +2 -2
  74. package/lib/base/config-database.js.map +1 -1
  75. package/lib/base/core-project.d.ts +2 -2
  76. package/lib/base/ports-worker.d.ts +10 -0
  77. package/lib/base/ports-worker.js +185 -0
  78. package/lib/base/ports-worker.js.map +1 -0
  79. package/lib/base/project-database.js +1 -1
  80. package/lib/base/project-database.js.map +1 -1
  81. package/lib/helpers/for-backend/helpers-cli-tool.backend.js +0 -1
  82. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  83. package/lib/helpers/for-backend/helpers-file-folders.backend.js +1 -1
  84. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  85. package/lib/helpers/for-backend/helpers-process.backend.d.ts +3 -2
  86. package/lib/helpers/for-backend/helpers-process.backend.js +19 -10
  87. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  88. package/lib/helpers/for-browser/angular.helper.js +2 -2
  89. package/lib/old/base-component.js +2 -2
  90. package/lib/old/base-formly-component.js +2 -2
  91. package/lib/old/dual-component-ctrl.js +2 -2
  92. package/package.json +5 -5
  93. package/tmp-environment.json +36 -31
  94. package/websql/esm2022/lib/base/base-cli-worker-config.mjs +33 -0
  95. package/websql/esm2022/lib/base/base-cli-worker-controller.mjs +87 -0
  96. package/websql/esm2022/lib/base/base-cli-worker.mjs +303 -0
  97. package/websql/esm2022/lib/base/base-db.mjs +2 -1
  98. package/websql/esm2022/lib/base/base-project-resolver.mjs +9 -6
  99. package/websql/esm2022/lib/base/base-project.mjs +2 -2
  100. package/websql/esm2022/lib/base/base-quick-fixes.mjs +1 -1
  101. package/websql/esm2022/lib/base/base-release-process.mjs +1 -1
  102. package/websql/esm2022/lib/base/core-project.mjs +1 -1
  103. package/websql/esm2022/lib/base/ports-worker.mjs +114 -0
  104. package/websql/esm2022/lib/models.mjs +1 -1
  105. package/websql/fesm2022/tnp-helpers.mjs +530 -7
  106. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  107. package/websql/lib/base/base-cli-worker-config.d.ts +24 -0
  108. package/websql/lib/base/base-cli-worker-controller.d.ts +14 -0
  109. package/websql/lib/base/base-cli-worker.d.ts +47 -0
  110. package/websql/lib/base/base-project-resolver.d.ts +5 -6
  111. package/websql/lib/base/base-project.d.ts +7 -7
  112. package/websql/lib/base/base-quick-fixes.d.ts +1 -1
  113. package/websql/lib/base/base-release-process.d.ts +1 -1
  114. package/websql/lib/base/core-project.d.ts +2 -2
  115. package/websql/lib/base/ports-worker.d.ts +11 -0
@@ -0,0 +1,437 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseCliWorker = void 0;
4
+ var tslib_1 = require("tslib");
5
+ //#region imports
6
+ var tnp_core_1 = require("tnp-core");
7
+ var tnp_config_1 = require("tnp-config");
8
+ var index_1 = require("../index");
9
+ var base_cli_worker_config_1 = require("./base-cli-worker-config");
10
+ //#endregion
11
+ //#region constants
12
+ var WORKER_INIT_START_TIME_LIMIT = 15; // 15 seconds max to start worker
13
+ var START_PORT_FOR_SERVICES = 3600;
14
+ //#endregion
15
+ var BaseCliWorker = /** @class */ (function () {
16
+ //#region constructor
17
+ function BaseCliWorker(
18
+ /**
19
+ * unique id for service
20
+ */
21
+ serviceID,
22
+ /**
23
+ * external command that will start service
24
+ */
25
+ startCommand) {
26
+ this.serviceID = serviceID;
27
+ this.startCommand = startCommand;
28
+ }
29
+ Object.defineProperty(BaseCliWorker.prototype, "pathToProcessLocalInfoJson", {
30
+ //#endregion
31
+ //#region fields & getters
32
+ //#region fields & getters / path to process local info
33
+ get: function () {
34
+ //#region @backendFunc
35
+ // console.log('os.userInfo()', os.userInfo());
36
+ return (0, tnp_core_1.crossPlatformPath)([
37
+ tnp_core_1.os.userInfo().homedir,
38
+ ".".concat(tnp_config_1.config.frameworkName),
39
+ '__workers-service-process-info__',
40
+ this.serviceID,
41
+ ]);
42
+ //#endregion
43
+ },
44
+ enumerable: false,
45
+ configurable: true
46
+ });
47
+ Object.defineProperty(BaseCliWorker.prototype, "processLocalInfoObj", {
48
+ //#endregion
49
+ //#region fields & getters / process local info json object
50
+ get: function () {
51
+ //#region @backendFunc
52
+ var configJson = index_1.Helpers.readJson5(this.pathToProcessLocalInfoJson) || {};
53
+ if (tnp_core_1._.isObject(configJson)) {
54
+ return tnp_core_1._.merge(new base_cli_worker_config_1.BaseCliWorkerConfig(), configJson);
55
+ }
56
+ return new base_cli_worker_config_1.BaseCliWorkerConfig();
57
+ //#endregion
58
+ },
59
+ enumerable: false,
60
+ configurable: true
61
+ });
62
+ //#endregion
63
+ //#endregion
64
+ //#region public methods
65
+ //#region public methods / start if needs to be started
66
+ BaseCliWorker.prototype.startDetachedIfNeedsToBeStarted = function () {
67
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
68
+ var serviceIsHealthy;
69
+ return tslib_1.__generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ if (!this.processLocalInfoObj.isEmpty) return [3 /*break*/, 2];
73
+ // not started ever yet
74
+ return [4 /*yield*/, this.startDetached()];
75
+ case 1:
76
+ // not started ever yet
77
+ _a.sent();
78
+ return [2 /*return*/];
79
+ case 2: return [4 /*yield*/, this.isServiceHealthy()];
80
+ case 3:
81
+ serviceIsHealthy = _a.sent();
82
+ if (!!serviceIsHealthy) return [3 /*break*/, 5];
83
+ return [4 /*yield*/, this.startDetached()];
84
+ case 4:
85
+ _a.sent();
86
+ return [2 /*return*/];
87
+ case 5:
88
+ index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is already started/healthy..."));
89
+ return [2 /*return*/];
90
+ }
91
+ });
92
+ });
93
+ };
94
+ //#endregion
95
+ //#region public methods / kill
96
+ /**
97
+ * stop if started
98
+ */
99
+ BaseCliWorker.prototype.kill = function () {
100
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
101
+ var ctrl, error_1;
102
+ return tslib_1.__generator(this, function (_a) {
103
+ switch (_a.label) {
104
+ case 0:
105
+ index_1.Helpers.log("Killing service \"".concat(this.serviceID, "\"..."));
106
+ if (this.processLocalInfoObj.isEmpty) {
107
+ index_1.Helpers.log("Service \"".concat(this.serviceID, "\" not started - nothing to kill..."));
108
+ return [2 /*return*/];
109
+ }
110
+ return [4 /*yield*/, this.getControllerForRemoteConnection()];
111
+ case 1:
112
+ ctrl = _a.sent();
113
+ _a.label = 2;
114
+ case 2:
115
+ _a.trys.push([2, 4, , 5]);
116
+ index_1.Helpers.removeFileIfExists(this.pathToProcessLocalInfoJson);
117
+ return [4 /*yield*/, ctrl.baseCLiWorkerCommand_kill().received];
118
+ case 3:
119
+ _a.sent();
120
+ index_1.Helpers.log("Service \"".concat(this.serviceID, "\" killed..."));
121
+ return [3 /*break*/, 5];
122
+ case 4:
123
+ error_1 = _a.sent();
124
+ index_1.Helpers.log(error_1);
125
+ index_1.Helpers.log("Service \"".concat(this.serviceID, "\" not killed... "));
126
+ return [3 /*break*/, 5];
127
+ case 5: return [2 /*return*/];
128
+ }
129
+ });
130
+ });
131
+ };
132
+ //#endregion
133
+ //#region public methods / restart
134
+ /**
135
+ * kill detached process and start again
136
+ */
137
+ BaseCliWorker.prototype.restart = function () {
138
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
139
+ return tslib_1.__generator(this, function (_a) {
140
+ switch (_a.label) {
141
+ case 0: return [4 /*yield*/, this.kill()];
142
+ case 1:
143
+ _a.sent();
144
+ return [4 /*yield*/, this.startDetached()];
145
+ case 2:
146
+ _a.sent();
147
+ return [2 /*return*/];
148
+ }
149
+ });
150
+ });
151
+ };
152
+ //#endregion
153
+ //#endregion
154
+ //#region protected methods
155
+ //#region protected methods / is service healthy
156
+ BaseCliWorker.prototype.isServiceHealthy = function (options) {
157
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
158
+ var i, workerIsStarting, healthCheckRequestTrys, ctrl, req, isHealthy, error_2;
159
+ return tslib_1.__generator(this, function (_a) {
160
+ switch (_a.label) {
161
+ case 0:
162
+ //#region @backendFunc
163
+ options = options || {};
164
+ i = 0;
165
+ _a.label = 1;
166
+ case 1:
167
+ if (!true) return [3 /*break*/, 3];
168
+ i++;
169
+ index_1.Helpers.log("Checking if service \"".concat(this.serviceID, "\" is starting..."));
170
+ workerIsStarting = !!this.processLocalInfoObj.startTimestamp;
171
+ if (!workerIsStarting) {
172
+ // initialized worker does not have startTimestamp
173
+ return [3 /*break*/, 3];
174
+ }
175
+ if (i > WORKER_INIT_START_TIME_LIMIT) {
176
+ return [2 /*return*/, false];
177
+ }
178
+ return [4 /*yield*/, index_1.Helpers.wait(1)];
179
+ case 2:
180
+ _a.sent();
181
+ return [3 /*break*/, 1];
182
+ case 3:
183
+ i = 0;
184
+ healthCheckRequestTrys = options.healthCheckRequestTrys || 1;
185
+ _a.label = 4;
186
+ case 4:
187
+ if (!true) return [3 /*break*/, 16];
188
+ i++;
189
+ _a.label = 5;
190
+ case 5:
191
+ _a.trys.push([5, 11, , 15]);
192
+ index_1.Helpers.log("Checking if service \"".concat(this.serviceID, "\" is healthy..."));
193
+ return [4 /*yield*/, this.getControllerForRemoteConnection()];
194
+ case 6:
195
+ ctrl = _a.sent();
196
+ index_1.Helpers.log("Sending is healthy request...");
197
+ return [4 /*yield*/, ctrl.baseCLiWorkerCommand_isHealthy(this.processLocalInfoObj).received];
198
+ case 7:
199
+ req = _a.sent();
200
+ isHealthy = req.body.booleanValue;
201
+ // console.log('isHealthy', { isHealthy });
202
+ if (isHealthy) {
203
+ index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is healthy (response is true)..."));
204
+ }
205
+ else {
206
+ index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is not healthy (response is false)..."));
207
+ }
208
+ if (!(isHealthy || i === healthCheckRequestTrys)) return [3 /*break*/, 8];
209
+ return [2 /*return*/, isHealthy];
210
+ case 8:
211
+ index_1.Helpers.log('Trying again...');
212
+ return [4 /*yield*/, index_1.Helpers.wait(1)];
213
+ case 9:
214
+ _a.sent();
215
+ return [3 /*break*/, 4];
216
+ case 10: return [3 /*break*/, 15];
217
+ case 11:
218
+ error_2 = _a.sent();
219
+ index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is not healthy (can't check health)..."));
220
+ if (!(i === healthCheckRequestTrys)) return [3 /*break*/, 12];
221
+ return [2 /*return*/, false];
222
+ case 12:
223
+ index_1.Helpers.log('Trying again...');
224
+ return [4 /*yield*/, index_1.Helpers.wait(1)];
225
+ case 13:
226
+ _a.sent();
227
+ return [3 /*break*/, 4];
228
+ case 14: return [3 /*break*/, 15];
229
+ case 15: return [3 /*break*/, 4];
230
+ case 16: return [2 /*return*/];
231
+ }
232
+ });
233
+ });
234
+ };
235
+ //#endregion
236
+ //#region protected methods / start
237
+ /**
238
+ * start if not started detached process
239
+ */
240
+ BaseCliWorker.prototype.startDetached = function () {
241
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
242
+ var isServiceHealthy;
243
+ return tslib_1.__generator(this, function (_a) {
244
+ switch (_a.label) {
245
+ case 0:
246
+ //#region @backendFunc
247
+ index_1.Helpers.log("Starting detached command in new terminal \"".concat(tnp_core_1.chalk.bold(this.startCommand), "\"..."));
248
+ return [4 /*yield*/, tnp_core_1.UtilsProcess.startInNewTerminalWindow(this.startCommand)];
249
+ case 1:
250
+ _a.sent();
251
+ index_1.Helpers.log("Starting detached service \"".concat(tnp_core_1.chalk.bold(this.serviceID), "\" - waiting until healthy..."));
252
+ return [4 /*yield*/, this.isServiceHealthy({
253
+ healthCheckRequestTrys: 5,
254
+ })];
255
+ case 2:
256
+ isServiceHealthy = _a.sent();
257
+ if (!isServiceHealthy) {
258
+ index_1.Helpers.throw("Not able to start service \"".concat(this.serviceID, "\"..."));
259
+ return [2 /*return*/];
260
+ }
261
+ index_1.Helpers.log("Healthy detached service \"".concat(tnp_core_1.chalk.bold(this.serviceID), "\" started."));
262
+ return [2 /*return*/];
263
+ }
264
+ });
265
+ });
266
+ };
267
+ //#endregion
268
+ //#region protected methods / info screen
269
+ BaseCliWorker.prototype._infoScreen = function () {
270
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
271
+ var cfonts, output, choices, choice, openInBrowser;
272
+ var _a, _b;
273
+ return tslib_1.__generator(this, function (_c) {
274
+ switch (_c.label) {
275
+ case 0:
276
+ if (!true) return [3 /*break*/, 2];
277
+ index_1.Helpers.clearConsole();
278
+ cfonts = require('cfonts');
279
+ output = cfonts.render("TAON.DEV", {
280
+ font: 'block',
281
+ align: 'left',
282
+ colors: ['system'],
283
+ background: 'transparent',
284
+ letterSpacing: 1,
285
+ lineHeight: 1,
286
+ space: true,
287
+ maxLength: '0',
288
+ gradient: false,
289
+ independentGradient: false,
290
+ transitionGradient: false,
291
+ env: 'node',
292
+ });
293
+ console.log(output.string);
294
+ index_1.Helpers.info("\n\n Service ".concat(tnp_core_1.chalk.bold.red(this.serviceID), " started..\n Check info here http://localhost:").concat(tnp_core_1.chalk.bold((_b = (_a = this.processLocalInfoObj) === null || _a === void 0 ? void 0 : _a.port) === null || _b === void 0 ? void 0 : _b.toString()), "/").concat('info', "\n\n "));
295
+ choices = {
296
+ openBrowser: {
297
+ name: 'Open browser with service info',
298
+ },
299
+ // showAllProcesses: {
300
+ // name: 'Show all processes',
301
+ // },
302
+ // showLogo: {
303
+ // name: 'Show logo',
304
+ // },
305
+ exit: {
306
+ name: "Shut down service",
307
+ },
308
+ };
309
+ return [4 /*yield*/, index_1.UtilsTerminal.select({
310
+ choices: choices,
311
+ question: 'Choose action',
312
+ })];
313
+ case 1:
314
+ choice = _c.sent();
315
+ if (choice === 'openBrowser') {
316
+ openInBrowser = require('open');
317
+ openInBrowser("http://localhost:".concat(this.processLocalInfoObj.port, "/info"));
318
+ }
319
+ if (choice === 'exit') {
320
+ process.exit(0);
321
+ }
322
+ switch (choice) {
323
+ }
324
+ return [3 /*break*/, 0];
325
+ case 2: return [2 /*return*/];
326
+ }
327
+ });
328
+ });
329
+ };
330
+ //#endregion
331
+ //#region protected methods / save process info
332
+ BaseCliWorker.prototype.saveProcessInfo = function (processConfig) {
333
+ //#region @backendFunc
334
+ processConfig = processConfig || {};
335
+ if (index_1.Helpers.exists(this.pathToProcessLocalInfoJson)) {
336
+ var jsonConfig = index_1.Helpers.readJson(this.pathToProcessLocalInfoJson);
337
+ if (tnp_core_1._.isObject(jsonConfig) && Object.keys(jsonConfig).length > 0) {
338
+ processConfig = tnp_core_1._.merge(jsonConfig, processConfig);
339
+ }
340
+ }
341
+ index_1.Helpers.log("Saving process info to \"".concat(this.pathToProcessLocalInfoJson, "\"...\n ").concat(processConfig === null || processConfig === void 0 ? void 0 : processConfig.toString(), "\n "));
342
+ index_1.Helpers.writeJson(this.pathToProcessLocalInfoJson, processConfig);
343
+ //#endregion
344
+ };
345
+ //#endregion
346
+ //#region protected methods / initialize worker
347
+ BaseCliWorker.prototype.initializeWorkerMetadata = function () {
348
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
349
+ var portControllerInstance, error_3;
350
+ return tslib_1.__generator(this, function (_a) {
351
+ switch (_a.label) {
352
+ case 0:
353
+ _a.trys.push([0, 3, , 4]);
354
+ return [4 /*yield*/, this.getControllerForRemoteConnection()];
355
+ case 1:
356
+ portControllerInstance = _a.sent();
357
+ return [4 /*yield*/, portControllerInstance.baseCLiWorkerCommand_initializeMetadata(this.serviceID).received];
358
+ case 2:
359
+ _a.sent();
360
+ this.saveProcessInfo({
361
+ startTimestamp: null,
362
+ });
363
+ return [3 /*break*/, 4];
364
+ case 3:
365
+ error_3 = _a.sent();
366
+ this.saveProcessInfo({
367
+ startTimestamp: null,
368
+ });
369
+ index_1.Helpers.throw(error_3);
370
+ return [3 /*break*/, 4];
371
+ case 4: return [2 /*return*/];
372
+ }
373
+ });
374
+ });
375
+ };
376
+ //#endregion
377
+ //#region protected methods / wait for process port saved to disk
378
+ BaseCliWorker.prototype.waitForProcessPortSavedToDisk = function () {
379
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
380
+ var portForRemote, MAX_TRYS, i;
381
+ return tslib_1.__generator(this, function (_a) {
382
+ switch (_a.label) {
383
+ case 0:
384
+ portForRemote = this.processLocalInfoObj.port;
385
+ MAX_TRYS = 10;
386
+ i = 0;
387
+ if (!!portForRemote) return [3 /*break*/, 5];
388
+ _a.label = 1;
389
+ case 1:
390
+ if (!!portForRemote) return [3 /*break*/, 5];
391
+ i++;
392
+ portForRemote = this.processLocalInfoObj.port;
393
+ if (!portForRemote) return [3 /*break*/, 2];
394
+ return [3 /*break*/, 5];
395
+ case 2:
396
+ index_1.Helpers.log("Waiting for port to be available...");
397
+ if (i > MAX_TRYS) {
398
+ index_1.Helpers.throw("Can't get port for remote connection.." +
399
+ " worker process did not start correctly");
400
+ }
401
+ return [4 /*yield*/, index_1.Helpers.wait(1)];
402
+ case 3:
403
+ _a.sent();
404
+ _a.label = 4;
405
+ case 4: return [3 /*break*/, 1];
406
+ case 5: return [2 /*return*/];
407
+ }
408
+ });
409
+ });
410
+ };
411
+ //#endregion
412
+ //#region protected methods / get free port
413
+ BaseCliWorker.prototype.getServicePort = function () {
414
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
415
+ var port;
416
+ return tslib_1.__generator(this, function (_a) {
417
+ switch (_a.label) {
418
+ case 0: return [4 /*yield*/, tnp_core_1.Utils.getFreePort({
419
+ startFrom: START_PORT_FOR_SERVICES,
420
+ })];
421
+ case 1:
422
+ port = _a.sent();
423
+ this.saveProcessInfo({
424
+ port: port,
425
+ serviceID: this.serviceID,
426
+ pid: process.pid,
427
+ startTimestamp: Date.now(),
428
+ });
429
+ return [2 /*return*/, port];
430
+ }
431
+ });
432
+ });
433
+ };
434
+ return BaseCliWorker;
435
+ }());
436
+ exports.BaseCliWorker = BaseCliWorker;
437
+ //# sourceMappingURL=base-cli-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-cli-worker.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
@@ -157,4 +157,6 @@ export declare class BaseCommandLine<PARAMS = any, PROJECT extends BaseProject<a
157
157
  clone(): Promise<void>;
158
158
  ghSave(): Promise<void>;
159
159
  ghRestore(): Promise<void>;
160
+ startCliServicePortsWorker(): Promise<void>;
161
+ pauseTerminal(): void;
160
162
  }
@@ -2106,6 +2106,45 @@ var BaseCommandLine = /** @class */ (function (_super) {
2106
2106
  });
2107
2107
  });
2108
2108
  };
2109
+ //#endregion
2110
+ BaseCommandLine.prototype.startCliServicePortsWorker = function () {
2111
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
2112
+ return tslib_1.__generator(this, function (_a) {
2113
+ switch (_a.label) {
2114
+ case 0:
2115
+ if (!this.params['restart']) return [3 /*break*/, 2];
2116
+ return [4 /*yield*/, this.ins.portsWorker.restart()];
2117
+ case 1:
2118
+ _a.sent();
2119
+ this._exit();
2120
+ _a.label = 2;
2121
+ case 2:
2122
+ if (!this.params['kill']) return [3 /*break*/, 4];
2123
+ return [4 /*yield*/, this.ins.portsWorker.kill()];
2124
+ case 3:
2125
+ _a.sent();
2126
+ this._exit();
2127
+ _a.label = 4;
2128
+ case 4:
2129
+ if (!(!!this.params['detached'] || !!this.params['detach'])) return [3 /*break*/, 6];
2130
+ return [4 /*yield*/, this.ins.portsWorker.startDetachedIfNeedsToBeStarted()];
2131
+ case 5:
2132
+ _a.sent();
2133
+ this._exit();
2134
+ return [3 /*break*/, 8];
2135
+ case 6: return [4 /*yield*/, this.ins.portsWorker.startNormallyInCurrentProcess()];
2136
+ case 7:
2137
+ _a.sent();
2138
+ _a.label = 8;
2139
+ case 8: return [2 /*return*/];
2140
+ }
2141
+ });
2142
+ });
2143
+ };
2144
+ BaseCommandLine.prototype.pauseTerminal = function () {
2145
+ index_1.Helpers.pressKeyAndContinue();
2146
+ this._exit();
2147
+ };
2109
2148
  return BaseCommandLine;
2110
2149
  }(command_line_feature_backend_1.CommandLineFeature));
2111
2150
  exports.BaseCommandLine = BaseCommandLine;