tnp-helpers 18.0.22 → 18.0.23

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 (240) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/README.md +24 -24
  3. package/browser/esm2022/lib/helpers/helpers.mjs +1 -11
  4. package/browser/fesm2022/tnp-helpers.mjs +0 -12
  5. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  6. package/browser/lib/helpers/helpers.d.ts +0 -4
  7. package/client/README.md +24 -24
  8. package/client/esm2022/lib/helpers/helpers.mjs +1 -11
  9. package/client/fesm2022/tnp-helpers.mjs +0 -12
  10. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  11. package/client/lib/helpers/helpers.d.ts +0 -4
  12. package/index.js.map +1 -1
  13. package/lib/base/classes/base-bower-json.js.map +1 -1
  14. package/lib/base/classes/base-cli-worker-config.js.map +1 -1
  15. package/lib/base/classes/base-cli-worker-controller.js.map +1 -1
  16. package/lib/base/classes/base-cli-worker.js.map +1 -1
  17. package/lib/base/classes/base-command-line-feature.backend.js.map +1 -1
  18. package/lib/base/classes/base-compiler-for-project.js.map +1 -1
  19. package/lib/base/classes/base-db.js.map +1 -1
  20. package/lib/base/classes/base-debounce-compiler-for-project.js.map +1 -1
  21. package/lib/base/classes/base-detached-service.d.ts +1 -2
  22. package/lib/base/classes/base-detached-service.js +6 -10
  23. package/lib/base/classes/base-detached-service.js.map +1 -1
  24. package/lib/base/classes/base-feature-for-project.js.map +1 -1
  25. package/lib/base/classes/base-git.js.map +1 -1
  26. package/lib/base/classes/base-global-command-line.backend.d.ts +2 -0
  27. package/lib/base/classes/base-global-command-line.backend.js +12 -0
  28. package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
  29. package/lib/base/classes/base-ignore-hide.js.map +1 -1
  30. package/lib/base/classes/base-json-file-reader.js.map +1 -1
  31. package/lib/base/classes/base-library-build.js.map +1 -1
  32. package/lib/base/classes/base-linked-projects.js.map +1 -1
  33. package/lib/base/classes/base-node-modules.js.map +1 -1
  34. package/lib/base/classes/base-npm-helpers.js.map +1 -1
  35. package/lib/base/classes/base-package-json.js.map +1 -1
  36. package/lib/base/classes/base-process-manager.js.map +1 -1
  37. package/lib/base/classes/base-project-resolver.js.map +1 -1
  38. package/lib/base/classes/base-project.js.map +1 -1
  39. package/lib/base/classes/base-quick-fixes.js.map +1 -1
  40. package/lib/base/classes/base-release-process.js.map +1 -1
  41. package/lib/base/classes/base-start-config.backend.js +0 -7
  42. package/lib/base/classes/base-start-config.backend.js.map +1 -1
  43. package/lib/base/classes/base-static-pages.js.map +1 -1
  44. package/lib/base/classes/base-vscode.js.map +1 -1
  45. package/lib/base/classes/index.js.map +1 -1
  46. package/lib/base/commit-data.js.map +1 -1
  47. package/lib/base/config-database.js.map +1 -1
  48. package/lib/base/core-project.js.map +1 -1
  49. package/lib/base/gh-temp-code.js.map +1 -1
  50. package/lib/base/index-rebuilder.backend.d.ts +0 -1
  51. package/lib/base/index-rebuilder.backend.js.map +1 -1
  52. package/lib/base/index.js.map +1 -1
  53. package/lib/base/linked-project.js.map +1 -1
  54. package/lib/base/project-database.js.map +1 -1
  55. package/lib/base/tcp-udp-ports/index.js.map +1 -1
  56. package/lib/base/tcp-udp-ports/not-assignable-port.entity.d.ts +0 -1
  57. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
  58. package/lib/base/tcp-udp-ports/not-assignable-port.entity.js.map +1 -1
  59. package/lib/base/tcp-udp-ports/ports.controller.js.map +1 -1
  60. package/lib/base/tcp-udp-ports/ports.entity.js.map +1 -1
  61. package/lib/base/tcp-udp-ports/tcp-udp-ports.context.js.map +1 -1
  62. package/lib/base/tcp-udp-ports/tcp-upd-ports.worker.js.map +1 -1
  63. package/lib/base/translate.js.map +1 -1
  64. package/lib/build-info._auto-generated_.js.map +1 -1
  65. package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
  66. package/lib/helpers/for-backend/helpers-console-gui.js.map +1 -1
  67. package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
  68. package/lib/helpers/for-backend/helpers-file-folders.backend.js.map +1 -1
  69. package/lib/helpers/for-backend/helpers-git.backend.js +12 -8
  70. package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
  71. package/lib/helpers/for-backend/helpers-network.backend.js.map +1 -1
  72. package/lib/helpers/for-backend/helpers-npm.backend.js.map +1 -1
  73. package/lib/helpers/for-backend/helpers-path.backend.js.map +1 -1
  74. package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
  75. package/lib/helpers/for-backend/helpers-system-terminal.backend.js.map +1 -1
  76. package/lib/helpers/for-backend/helpers-vscode.backend.js.map +1 -1
  77. package/lib/helpers/for-browser/angular.helper.js +2 -2
  78. package/lib/helpers/for-browser/angular.helper.js.map +1 -1
  79. package/lib/helpers/for-browser/helpers-browser.js.map +1 -1
  80. package/lib/helpers/helpers-array-obj.js.map +1 -1
  81. package/lib/helpers/helpers-json5.backend.js.map +1 -1
  82. package/lib/helpers/helpers-numbers.js.map +1 -1
  83. package/lib/helpers/helpers-strings-regexes.js.map +1 -1
  84. package/lib/helpers/helpers-strings.js.map +1 -1
  85. package/lib/helpers/helpers.d.ts +0 -4
  86. package/lib/helpers/helpers.js +0 -15
  87. package/lib/helpers/helpers.js.map +1 -1
  88. package/lib/index._auto-generated_.d.ts +0 -1
  89. package/lib/index._auto-generated_.js.map +1 -1
  90. package/lib/index.js.map +1 -1
  91. package/lib/lowdb/adapters/Memory.js.map +1 -1
  92. package/lib/lowdb/adapters/browser/LocalStorage.js.map +1 -1
  93. package/lib/lowdb/adapters/browser/SessionStorage.js.map +1 -1
  94. package/lib/lowdb/adapters/browser/WebStorage.js.map +1 -1
  95. package/lib/lowdb/adapters/node/DataFile.js.map +1 -1
  96. package/lib/lowdb/adapters/node/JSONFile.js.map +1 -1
  97. package/lib/lowdb/adapters/node/TextFile.js.map +1 -1
  98. package/lib/lowdb/adapters/node/steno.js.map +1 -1
  99. package/lib/lowdb/browser.js.map +1 -1
  100. package/lib/lowdb/core/Low.js.map +1 -1
  101. package/lib/lowdb/examples/browser.js.map +1 -1
  102. package/lib/lowdb/examples/cli.d.ts +0 -1
  103. package/lib/lowdb/examples/cli.js.map +1 -1
  104. package/lib/lowdb/examples/in-memory.d.ts +0 -1
  105. package/lib/lowdb/examples/in-memory.js.map +1 -1
  106. package/lib/lowdb/examples/server.d.ts +0 -1
  107. package/lib/lowdb/examples/server.js.map +1 -1
  108. package/lib/lowdb/index.js.map +1 -1
  109. package/lib/lowdb/node.js.map +1 -1
  110. package/lib/lowdb/presets/browser.js.map +1 -1
  111. package/lib/lowdb/presets/node.js.map +1 -1
  112. package/lib/models.js.map +1 -1
  113. package/lib/old/base-component.d.ts +0 -1
  114. package/lib/old/base-component.js +2 -2
  115. package/lib/old/base-component.js.map +1 -1
  116. package/lib/old/base-formly-component.d.ts +0 -1
  117. package/lib/old/base-formly-component.js +2 -2
  118. package/lib/old/base-formly-component.js.map +1 -1
  119. package/lib/old/condition-wait.d.ts +0 -1
  120. package/lib/old/condition-wait.js.map +1 -1
  121. package/lib/old/dual-component-ctrl.d.ts +0 -1
  122. package/lib/old/dual-component-ctrl.js +2 -2
  123. package/lib/old/dual-component-ctrl.js.map +1 -1
  124. package/lib/old/execute-command.js.map +1 -1
  125. package/lib/old/helpers.js.map +1 -1
  126. package/lib/old/models.js.map +1 -1
  127. package/lib/utils.js.map +1 -1
  128. package/lib/validators/validators-firedev.js.map +1 -1
  129. package/lib/validators/validators-git.js.map +1 -1
  130. package/lib/validators/validators-network.js.map +1 -1
  131. package/lib/validators/validators.js.map +1 -1
  132. package/migrations/1736198527297_init.js.map +1 -1
  133. package/migrations/1736199486472_addingNotAssignablePorts.js.map +1 -1
  134. package/migrations/1736454437350_addFreePorts.js.map +1 -1
  135. package/migrations/index.js.map +1 -1
  136. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  137. package/package.json +4 -4
  138. package/taon.jsonc +33 -33
  139. package/tmp-environment.json +3 -3
  140. package/websql/README.md +24 -24
  141. package/websql/esm2022/lib/helpers/helpers.mjs +1 -11
  142. package/websql/fesm2022/tnp-helpers.mjs +0 -12
  143. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  144. package/websql/lib/helpers/helpers.d.ts +0 -4
  145. package/lib/base/base-cli-worker-config.d.ts +0 -27
  146. package/lib/base/base-cli-worker-config.js +0 -53
  147. package/lib/base/base-cli-worker-config.js.map +0 -1
  148. package/lib/base/base-cli-worker-controller.d.ts +0 -15
  149. package/lib/base/base-cli-worker-controller.js +0 -154
  150. package/lib/base/base-cli-worker-controller.js.map +0 -1
  151. package/lib/base/base-cli-worker.d.ts +0 -82
  152. package/lib/base/base-cli-worker.js +0 -654
  153. package/lib/base/base-cli-worker.js.map +0 -1
  154. package/lib/base/base-command-line.backend.d.ts +0 -174
  155. package/lib/base/base-command-line.backend.js +0 -2221
  156. package/lib/base/base-command-line.backend.js.map +0 -1
  157. package/lib/base/base-compiler-for-project.d.ts +0 -7
  158. package/lib/base/base-compiler-for-project.js +0 -62
  159. package/lib/base/base-compiler-for-project.js.map +0 -1
  160. package/lib/base/base-db.d.ts +0 -12
  161. package/lib/base/base-db.js +0 -74
  162. package/lib/base/base-db.js.map +0 -1
  163. package/lib/base/base-debounce-compiler-for-project.d.ts +0 -28
  164. package/lib/base/base-debounce-compiler-for-project.js +0 -82
  165. package/lib/base/base-debounce-compiler-for-project.js.map +0 -1
  166. package/lib/base/base-detached-service.d.ts +0 -6
  167. package/lib/base/base-detached-service.js +0 -16
  168. package/lib/base/base-detached-service.js.map +0 -1
  169. package/lib/base/base-feature-for-project.d.ts +0 -5
  170. package/lib/base/base-feature-for-project.js +0 -11
  171. package/lib/base/base-feature-for-project.js.map +0 -1
  172. package/lib/base/base-git.d.ts +0 -148
  173. package/lib/base/base-git.js +0 -1202
  174. package/lib/base/base-git.js.map +0 -1
  175. package/lib/base/base-github-pages.d.ts +0 -14
  176. package/lib/base/base-github-pages.js +0 -173
  177. package/lib/base/base-github-pages.js.map +0 -1
  178. package/lib/base/base-ignore-hide.d.ts +0 -14
  179. package/lib/base/base-ignore-hide.js +0 -55
  180. package/lib/base/base-ignore-hide.js.map +0 -1
  181. package/lib/base/base-library-build.d.ts +0 -65
  182. package/lib/base/base-library-build.js +0 -717
  183. package/lib/base/base-library-build.js.map +0 -1
  184. package/lib/base/base-linked-projects.d.ts +0 -24
  185. package/lib/base/base-linked-projects.js +0 -408
  186. package/lib/base/base-linked-projects.js.map +0 -1
  187. package/lib/base/base-npm-helpers.d.ts +0 -128
  188. package/lib/base/base-npm-helpers.js +0 -774
  189. package/lib/base/base-npm-helpers.js.map +0 -1
  190. package/lib/base/base-project-resolver.d.ts +0 -41
  191. package/lib/base/base-project-resolver.js +0 -308
  192. package/lib/base/base-project-resolver.js.map +0 -1
  193. package/lib/base/base-project.d.ts +0 -244
  194. package/lib/base/base-project.js +0 -1223
  195. package/lib/base/base-project.js.map +0 -1
  196. package/lib/base/base-quick-fixes.d.ts +0 -6
  197. package/lib/base/base-quick-fixes.js +0 -31
  198. package/lib/base/base-quick-fixes.js.map +0 -1
  199. package/lib/base/base-release-process.d.ts +0 -69
  200. package/lib/base/base-release-process.js +0 -913
  201. package/lib/base/base-release-process.js.map +0 -1
  202. package/lib/base/base-start-config.backend.d.ts +0 -36
  203. package/lib/base/base-start-config.backend.js +0 -167
  204. package/lib/base/base-start-config.backend.js.map +0 -1
  205. package/lib/base/base-vscode.d.ts +0 -12
  206. package/lib/base/base-vscode.js +0 -139
  207. package/lib/base/base-vscode.js.map +0 -1
  208. package/lib/base/classes/base-command-line.backend.d.ts +0 -175
  209. package/lib/base/classes/base-command-line.backend.js +0 -2235
  210. package/lib/base/classes/base-command-line.backend.js.map +0 -1
  211. package/lib/base/classes/base-github-pages.d.ts +0 -14
  212. package/lib/base/classes/base-github-pages.js +0 -173
  213. package/lib/base/classes/base-github-pages.js.map +0 -1
  214. package/lib/base/classes/index copy.d.ts +0 -22
  215. package/lib/base/classes/index copy.js +0 -28
  216. package/lib/base/classes/index copy.js.map +0 -1
  217. package/lib/base/command-line-feature.backend.d.ts +0 -51
  218. package/lib/base/command-line-feature.backend.js +0 -206
  219. package/lib/base/command-line-feature.backend.js.map +0 -1
  220. package/lib/base/ports-worker.d.ts +0 -32
  221. package/lib/base/ports-worker.js +0 -244
  222. package/lib/base/ports-worker.js.map +0 -1
  223. package/lib/base/tcp-udp-ports/port.entity.d.ts +0 -0
  224. package/lib/base/tcp-udp-ports/port.entity.js +0 -5
  225. package/lib/base/tcp-udp-ports/port.entity.js.map +0 -1
  226. package/lib/base/tcp-upd-ports.worker.d.ts +0 -13
  227. package/lib/base/tcp-upd-ports.worker.js +0 -99
  228. package/lib/base/tcp-upd-ports.worker.js.map +0 -1
  229. package/lib/helpers/for-backend/ts-code/index.d.ts +0 -1
  230. package/lib/helpers/for-backend/ts-code/index.js +0 -5
  231. package/lib/helpers/for-backend/ts-code/index.js.map +0 -1
  232. package/lib/helpers/for-backend/ts-code/ts-code-extractor.d.ts +0 -26
  233. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js +0 -62
  234. package/lib/helpers/for-backend/ts-code/ts-code-extractor.js.map +0 -1
  235. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.d.ts +0 -19
  236. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js +0 -81
  237. package/lib/helpers/for-backend/ts-code/ts-code-modifier.backend.js.map +0 -1
  238. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.d.ts +0 -29
  239. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js +0 -81
  240. package/lib/helpers/for-backend/ts-code/ts-import-export-extractor.js.map +0 -1
@@ -1,654 +0,0 @@
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 index_1 = require("../index");
8
- var base_cli_worker_config_1 = require("./base-cli-worker-config");
9
- //#endregion
10
- //#region constants
11
- var WORKER_INIT_START_TIME_LIMIT = 25; // 15 seconds max to start worker
12
- var START_PORT_FOR_SERVICES = 3600;
13
- //#endregion
14
- var BaseCliWorker = /** @class */ (function () {
15
- //#region constructor
16
- function BaseCliWorker(
17
- /**
18
- * unique id for service
19
- */
20
- serviceID,
21
- /**
22
- * external command that will start service
23
- */
24
- startCommand,
25
- /**
26
- * unique id for service
27
- */
28
- serviceVersion) {
29
- this.serviceID = serviceID;
30
- this.startCommand = startCommand;
31
- this.serviceVersion = serviceVersion;
32
- }
33
- Object.defineProperty(BaseCliWorker.prototype, "pathToProcessLocalInfoJson", {
34
- //#endregion
35
- //#region fields & getters
36
- //#region fields & getters / path to process local info
37
- get: function () {
38
- //#region @backendFunc
39
- // console.log('os.userInfo()', os.userInfo());
40
- return (0, tnp_core_1.crossPlatformPath)([
41
- tnp_core_1.os.userInfo().homedir,
42
- ".taon",
43
- '__workers-service-process-info__',
44
- "".concat(this.serviceID, ".json"),
45
- ]);
46
- //#endregion
47
- },
48
- enumerable: false,
49
- configurable: true
50
- });
51
- Object.defineProperty(BaseCliWorker.prototype, "processLocalInfoObj", {
52
- //#endregion
53
- //#region fields & getters / process local info json object
54
- get: function () {
55
- //#region @backendFunc
56
- var configJson = index_1.Helpers.readJson5(this.pathToProcessLocalInfoJson) || {};
57
- if (tnp_core_1._.isObject(configJson)) {
58
- return tnp_core_1._.merge(new base_cli_worker_config_1.BaseCliWorkerConfig(), configJson);
59
- }
60
- return new base_cli_worker_config_1.BaseCliWorkerConfig();
61
- //#endregion
62
- },
63
- enumerable: false,
64
- configurable: true
65
- });
66
- //#endregion
67
- //#endregion
68
- //#region public methods
69
- //#region public methods / start if needs to be started
70
- BaseCliWorker.prototype.startDetachedIfNeedsToBeStarted = function () {
71
- return tslib_1.__awaiter(this, void 0, void 0, function () {
72
- var serviceIsHealthy;
73
- return tslib_1.__generator(this, function (_a) {
74
- switch (_a.label) {
75
- case 0:
76
- if (!this.processLocalInfoObj.isEmpty) return [3 /*break*/, 2];
77
- // not started ever yet
78
- return [4 /*yield*/, this.startDetached()];
79
- case 1:
80
- // not started ever yet
81
- _a.sent();
82
- return [2 /*return*/];
83
- case 2: return [4 /*yield*/, this.isServiceHealthy({
84
- healthCheckRequestTrys: 1, // just quick check
85
- })];
86
- case 3:
87
- serviceIsHealthy = _a.sent();
88
- if (!!serviceIsHealthy) return [3 /*break*/, 5];
89
- return [4 /*yield*/, this.startDetached()];
90
- case 4:
91
- _a.sent();
92
- return [2 /*return*/];
93
- case 5:
94
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is already started/healthy..."));
95
- return [2 /*return*/];
96
- }
97
- });
98
- });
99
- };
100
- //#endregion
101
- //#region public methods / kill
102
- /**
103
- * stop if started
104
- */
105
- BaseCliWorker.prototype.kill = function (options) {
106
- return tslib_1.__awaiter(this, void 0, void 0, function () {
107
- var ctrl, error_1;
108
- return tslib_1.__generator(this, function (_a) {
109
- switch (_a.label) {
110
- case 0:
111
- //#region @backendFunc
112
- options = options || {};
113
- index_1.Helpers.log("Killing service \"".concat(this.serviceID, "\"..."));
114
- if (this.processLocalInfoObj.isEmpty) {
115
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" not started - nothing to kill..."));
116
- return [2 /*return*/];
117
- }
118
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
119
- case 1:
120
- ctrl = _a.sent();
121
- _a.label = 2;
122
- case 2:
123
- _a.trys.push([2, 4, , 5]);
124
- if (!options.dontRemoveConfigFile) {
125
- index_1.Helpers.removeFileIfExists(this.pathToProcessLocalInfoJson);
126
- }
127
- return [4 /*yield*/, ctrl.baseCLiWorkerCommand_kill().received];
128
- case 3:
129
- _a.sent();
130
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" killed..."));
131
- return [3 /*break*/, 5];
132
- case 4:
133
- error_1 = _a.sent();
134
- index_1.Helpers.log(error_1);
135
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" not killed... "));
136
- return [3 /*break*/, 5];
137
- case 5: return [2 /*return*/];
138
- }
139
- });
140
- });
141
- };
142
- //#endregion
143
- //#region public methods / restart
144
- /**
145
- * kill detached process and start again
146
- * @param options.detached - default true
147
- */
148
- BaseCliWorker.prototype.restart = function (options) {
149
- return tslib_1.__awaiter(this, void 0, void 0, function () {
150
- return tslib_1.__generator(this, function (_a) {
151
- switch (_a.label) {
152
- case 0:
153
- options = options || {};
154
- options.detached = tnp_core_1._.isUndefined(options.detached) ? true : false;
155
- return [4 /*yield*/, this.kill()];
156
- case 1:
157
- _a.sent();
158
- if (!options.detached) return [3 /*break*/, 3];
159
- index_1.Helpers.info("Restarting service \"".concat(this.serviceID, "\" in detached mode..."));
160
- return [4 /*yield*/, this.startDetached()];
161
- case 2:
162
- _a.sent();
163
- return [3 /*break*/, 5];
164
- case 3:
165
- index_1.Helpers.info("Restarting service \"".concat(this.serviceID, "\" in current process..."));
166
- return [4 /*yield*/, this.startNormallyInCurrentProcess()];
167
- case 4:
168
- _a.sent();
169
- _a.label = 5;
170
- case 5: return [2 /*return*/];
171
- }
172
- });
173
- });
174
- };
175
- //#endregion
176
- //#region public methods / cli start
177
- /**
178
- * only for cli start
179
- * @param cliParams on from cli
180
- */
181
- BaseCliWorker.prototype.cliStartProcedure = function (cliParams) {
182
- return tslib_1.__awaiter(this, void 0, void 0, function () {
183
- var instance, detached;
184
- return tslib_1.__generator(this, function (_a) {
185
- switch (_a.label) {
186
- case 0:
187
- instance = this;
188
- detached = !!cliParams['detached'] || !!cliParams['detach'];
189
- if (!cliParams['restart']) return [3 /*break*/, 2];
190
- return [4 /*yield*/, instance.restart({
191
- detached: detached,
192
- })];
193
- case 1:
194
- _a.sent();
195
- process.exit(0);
196
- _a.label = 2;
197
- case 2:
198
- if (!cliParams['kill']) return [3 /*break*/, 4];
199
- return [4 /*yield*/, instance.kill()];
200
- case 3:
201
- _a.sent();
202
- process.exit(0);
203
- _a.label = 4;
204
- case 4:
205
- if (!detached) return [3 /*break*/, 6];
206
- return [4 /*yield*/, instance.startDetachedIfNeedsToBeStarted()];
207
- case 5:
208
- _a.sent();
209
- process.exit(0);
210
- return [3 /*break*/, 8];
211
- case 6: return [4 /*yield*/, instance.startNormallyInCurrentProcess()];
212
- case 7:
213
- _a.sent();
214
- _a.label = 8;
215
- case 8: return [2 /*return*/];
216
- }
217
- });
218
- });
219
- };
220
- //#endregion
221
- //#endregion
222
- //#region protected methods
223
- //#region protected methods / prevent external config change
224
- BaseCliWorker.prototype.preventExternalConfigChange = function () {
225
- var _this = this;
226
- //#region @backendFunc
227
- index_1.Helpers.info("watching: ".concat(this.pathToProcessLocalInfoJson));
228
- var currentConfig = this.processLocalInfoObj;
229
- tnp_core_1.chokidar.watch(this.pathToProcessLocalInfoJson).on('change', function () {
230
- index_1.Helpers.log("Service data changed...");
231
- if (!_this.processLocalInfoObj.isEquals(currentConfig)) {
232
- index_1.Helpers.error("Service config data externally changed... killing service", false, true);
233
- }
234
- });
235
- //#endregion
236
- };
237
- //#endregion
238
- //#region protected methods / prevent start if already started
239
- BaseCliWorker.prototype.preventStartIfAlreadyStarted = function () {
240
- return tslib_1.__awaiter(this, void 0, void 0, function () {
241
- var isHealthy, error_2;
242
- return tslib_1.__generator(this, function (_a) {
243
- switch (_a.label) {
244
- case 0:
245
- _a.trys.push([0, 2, , 3]);
246
- return [4 /*yield*/, this.isServiceHealthy({
247
- healthCheckRequestTrys: 2, // check only twice
248
- })];
249
- case 1:
250
- isHealthy = _a.sent();
251
- if (isHealthy) {
252
- index_1.Helpers.error("Service already started on port ".concat(this.processLocalInfoObj.port, " !"), false, true);
253
- }
254
- return [3 /*break*/, 3];
255
- case 2:
256
- error_2 = _a.sent();
257
- return [3 /*break*/, 3];
258
- case 3: return [2 /*return*/];
259
- }
260
- });
261
- });
262
- };
263
- //#endregion
264
- //#region protected methods / prevent start if already started
265
- BaseCliWorker.prototype.killWorkerWithLowerVersion = function () {
266
- return tslib_1.__awaiter(this, void 0, void 0, function () {
267
- var ctrl, req, isUpToDate, error_3;
268
- return tslib_1.__generator(this, function (_a) {
269
- switch (_a.label) {
270
- case 0:
271
- _a.trys.push([0, 6, , 7]);
272
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
273
- case 1:
274
- ctrl = _a.sent();
275
- index_1.Helpers.log("Checking if current working version is up to date...");
276
- return [4 /*yield*/, ctrl.baseCLiWorkerCommand_hasUpToDateVersion(tnp_core_1._.merge(this.processLocalInfoObj, {
277
- version: this.serviceVersion,
278
- })).received];
279
- case 2:
280
- req = _a.sent();
281
- isUpToDate = req.body.booleanValue;
282
- if (!!isUpToDate) return [3 /*break*/, 5];
283
- index_1.Helpers.info("Killing service with lower version...");
284
- return [4 /*yield*/, this.kill({
285
- dontRemoveConfigFile: true,
286
- })];
287
- case 3:
288
- _a.sent();
289
- return [4 /*yield*/, index_1.Helpers.wait(1)];
290
- case 4:
291
- _a.sent();
292
- _a.label = 5;
293
- case 5: return [3 /*break*/, 7];
294
- case 6:
295
- error_3 = _a.sent();
296
- return [3 /*break*/, 7];
297
- case 7: return [2 /*return*/];
298
- }
299
- });
300
- });
301
- };
302
- //#endregion
303
- //#region protected methods / is service healthy
304
- /**
305
- * This has 2 purposes:
306
- * - infinite check when when detached process finished starting
307
- * - quick check if service is healthy / already started
308
- */
309
- BaseCliWorker.prototype.isServiceHealthy = function (options) {
310
- return tslib_1.__awaiter(this, void 0, void 0, function () {
311
- var healthCheckRequestTrys, i, workerIsStarting, isWaitingNotCheckingWhen, ctrl, req, isHealthy, error_4;
312
- return tslib_1.__generator(this, function (_a) {
313
- switch (_a.label) {
314
- case 0:
315
- //#region @backendFunc
316
- options = options || {};
317
- healthCheckRequestTrys = options.healthCheckRequestTrys || 1;
318
- i = 0;
319
- _a.label = 1;
320
- case 1:
321
- if (!true) return [3 /*break*/, 3];
322
- i++;
323
- index_1.Helpers.log("Checking if service \"".concat(this.serviceID, "\" is starting..."));
324
- workerIsStarting = !!this.processLocalInfoObj.startTimestamp;
325
- if (!workerIsStarting) {
326
- // initialized worker does not have startTimestamp
327
- return [3 /*break*/, 3];
328
- }
329
- if (i > WORKER_INIT_START_TIME_LIMIT) {
330
- return [2 /*return*/, false];
331
- }
332
- return [4 /*yield*/, index_1.Helpers.wait(1)];
333
- case 2:
334
- _a.sent();
335
- return [3 /*break*/, 1];
336
- case 3:
337
- i = 0;
338
- isWaitingNotCheckingWhen = 10;
339
- _a.label = 4;
340
- case 4:
341
- if (!true) return [3 /*break*/, 16];
342
- i++;
343
- _a.label = 5;
344
- case 5:
345
- _a.trys.push([5, 11, , 15]);
346
- if (isWaitingNotCheckingWhen === i) {
347
- index_1.Helpers.info("Waiting for service \"".concat(this.serviceID, "\" to start..."));
348
- }
349
- else {
350
- index_1.Helpers.log("Checking if service \"".concat(this.serviceID, "\" is healthy..."));
351
- }
352
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
353
- case 6:
354
- ctrl = _a.sent();
355
- index_1.Helpers.log("Sending is healthy request...");
356
- return [4 /*yield*/, ctrl.baseCLiWorkerCommand_isHealthy(this.processLocalInfoObj).received];
357
- case 7:
358
- req = _a.sent();
359
- isHealthy = req.body.booleanValue;
360
- // console.log('isHealthy', { isHealthy });
361
- if (isHealthy) {
362
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is healthy (response is true)..."));
363
- }
364
- else {
365
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is not healthy (response is false)..."));
366
- }
367
- if (!(isHealthy || i === healthCheckRequestTrys)) return [3 /*break*/, 8];
368
- return [2 /*return*/, isHealthy];
369
- case 8:
370
- index_1.Helpers.log('Trying again...');
371
- return [4 /*yield*/, index_1.Helpers.wait(1)];
372
- case 9:
373
- _a.sent();
374
- return [3 /*break*/, 4];
375
- case 10: return [3 /*break*/, 15];
376
- case 11:
377
- error_4 = _a.sent();
378
- // Helpers.tryCatchError(error);
379
- index_1.Helpers.log("Service \"".concat(this.serviceID, "\" is not healthy (can't check health)..."));
380
- if (!(i === healthCheckRequestTrys)) return [3 /*break*/, 12];
381
- return [2 /*return*/, false];
382
- case 12:
383
- index_1.Helpers.log('Trying again...');
384
- return [4 /*yield*/, index_1.Helpers.wait(1)];
385
- case 13:
386
- _a.sent();
387
- return [3 /*break*/, 4];
388
- case 14: return [3 /*break*/, 15];
389
- case 15: return [3 /*break*/, 4];
390
- case 16: return [2 /*return*/];
391
- }
392
- });
393
- });
394
- };
395
- //#endregion
396
- //#region protected methods / start detached
397
- /**
398
- * start if not started detached process
399
- */
400
- BaseCliWorker.prototype.startDetached = function () {
401
- return tslib_1.__awaiter(this, void 0, void 0, function () {
402
- var isServiceHealthy;
403
- return tslib_1.__generator(this, function (_a) {
404
- switch (_a.label) {
405
- case 0:
406
- //#region @backendFunc
407
- index_1.Helpers.log("Starting detached command in new terminal \"".concat(tnp_core_1.chalk.bold(this.startCommand), "\"..."));
408
- return [4 /*yield*/, tnp_core_1.UtilsProcess.startInNewTerminalWindow(this.startCommand)];
409
- case 1:
410
- _a.sent();
411
- index_1.Helpers.log("Starting detached service \"".concat(tnp_core_1.chalk.bold(this.serviceID), "\" - waiting until healthy..."));
412
- return [4 /*yield*/, this.isServiceHealthy({
413
- healthCheckRequestTrys: Infinity, // wait infinity until started
414
- })];
415
- case 2:
416
- isServiceHealthy = _a.sent();
417
- if (!isServiceHealthy) {
418
- index_1.Helpers.throw("Not able to start service \"".concat(this.serviceID, "\"..."));
419
- return [2 /*return*/];
420
- }
421
- index_1.Helpers.log("Healthy detached service \"".concat(tnp_core_1.chalk.bold(this.serviceID), "\" started."));
422
- return [2 /*return*/];
423
- }
424
- });
425
- });
426
- };
427
- //#endregion
428
- //#region protected methods / text for header
429
- BaseCliWorker.prototype.headerText = function () {
430
- return tslib_1.__awaiter(this, void 0, void 0, function () {
431
- return tslib_1.__generator(this, function (_a) {
432
- return [2 /*return*/, tnp_core_1._.startCase(this.serviceID)];
433
- });
434
- });
435
- };
436
- //#endregion
437
- //#region protected methods / text header style
438
- BaseCliWorker.prototype.textHeaderStyle = function () {
439
- return 'block';
440
- };
441
- //#endregion
442
- //#region protected methods / header text align
443
- BaseCliWorker.prototype.headerTextAlign = function () {
444
- return 'left';
445
- };
446
- //#endregion
447
- //#region protected methods / header
448
- /**
449
- * override whole terminal header
450
- */
451
- BaseCliWorker.prototype.header = function () {
452
- return tslib_1.__awaiter(this, void 0, void 0, function () {
453
- var cfonts, output, _a, _b;
454
- return tslib_1.__generator(this, function (_c) {
455
- switch (_c.label) {
456
- case 0:
457
- cfonts = require('cfonts');
458
- _b = (_a = cfonts).render;
459
- return [4 /*yield*/, this.headerText()];
460
- case 1:
461
- output = _b.apply(_a, [_c.sent(), {
462
- font: this.textHeaderStyle(),
463
- align: this.headerTextAlign(),
464
- colors: ['system'],
465
- background: 'transparent',
466
- letterSpacing: 1,
467
- lineHeight: 1,
468
- space: true,
469
- maxLength: '0',
470
- gradient: false,
471
- independentGradient: false,
472
- transitionGradient: false,
473
- env: 'node',
474
- }]);
475
- console.log(output.string);
476
- return [2 /*return*/];
477
- }
478
- });
479
- });
480
- };
481
- //#endregion
482
- //#region protected methods / info message below header
483
- BaseCliWorker.prototype.infoMessageBelowHeader = function () {
484
- return tslib_1.__awaiter(this, void 0, void 0, function () {
485
- var _a, _b;
486
- return tslib_1.__generator(this, function (_c) {
487
- //#region @backendFunc
488
- index_1.Helpers.info("\n\n Service ".concat(tnp_core_1.chalk.bold.red(this.serviceID)) +
489
- " (version: ".concat(this.serviceVersion, ") 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 "));
490
- return [2 /*return*/];
491
- });
492
- });
493
- };
494
- //#endregion
495
- //#region protected methods / info screen
496
- BaseCliWorker.prototype._infoScreen = function () {
497
- return tslib_1.__awaiter(this, void 0, void 0, function () {
498
- var choices, choice, openInBrowser;
499
- return tslib_1.__generator(this, function (_a) {
500
- switch (_a.label) {
501
- case 0:
502
- if (!true) return [3 /*break*/, 4];
503
- index_1.Helpers.clearConsole();
504
- return [4 /*yield*/, this.header()];
505
- case 1:
506
- _a.sent();
507
- return [4 /*yield*/, this.infoMessageBelowHeader()];
508
- case 2:
509
- _a.sent();
510
- choices = {
511
- openBrowser: {
512
- name: 'Open browser with service info',
513
- },
514
- // showAllProcesses: {
515
- // name: 'Show all processes',
516
- // },
517
- // showLogo: {
518
- // name: 'Show logo',
519
- // },
520
- exit: {
521
- name: "Shut down service",
522
- },
523
- };
524
- return [4 /*yield*/, index_1.UtilsTerminal.select({
525
- choices: choices,
526
- question: 'Choose action',
527
- })];
528
- case 3:
529
- choice = _a.sent();
530
- if (choice === 'openBrowser') {
531
- openInBrowser = require('open');
532
- openInBrowser("http://localhost:".concat(this.processLocalInfoObj.port, "/info"));
533
- }
534
- if (choice === 'exit') {
535
- process.exit(0);
536
- }
537
- switch (choice) {
538
- }
539
- return [3 /*break*/, 0];
540
- case 4: return [2 /*return*/];
541
- }
542
- });
543
- });
544
- };
545
- //#endregion
546
- //#region protected methods / save process info
547
- BaseCliWorker.prototype.saveProcessInfo = function (processConfig) {
548
- //#region @backendFunc
549
- processConfig = processConfig || {};
550
- if (index_1.Helpers.exists(this.pathToProcessLocalInfoJson)) {
551
- var jsonConfig = index_1.Helpers.readJson(this.pathToProcessLocalInfoJson);
552
- if (tnp_core_1._.isObject(jsonConfig) && Object.keys(jsonConfig).length > 0) {
553
- processConfig = tnp_core_1._.merge(jsonConfig, processConfig);
554
- }
555
- }
556
- index_1.Helpers.log("Saving process info to \"".concat(this.pathToProcessLocalInfoJson, "\"..."));
557
- index_1.Helpers.log(processConfig);
558
- index_1.Helpers.writeJson(this.pathToProcessLocalInfoJson, processConfig);
559
- //#endregion
560
- };
561
- //#endregion
562
- //#region protected methods / initialize worker
563
- BaseCliWorker.prototype.initializeWorkerMetadata = function () {
564
- return tslib_1.__awaiter(this, void 0, void 0, function () {
565
- var portControllerInstance, error_5;
566
- return tslib_1.__generator(this, function (_a) {
567
- switch (_a.label) {
568
- case 0:
569
- _a.trys.push([0, 3, , 4]);
570
- return [4 /*yield*/, this.getControllerForRemoteConnection()];
571
- case 1:
572
- portControllerInstance = _a.sent();
573
- return [4 /*yield*/, portControllerInstance.baseCLiWorkerCommand_initializeMetadata(this.serviceID, this.serviceVersion).received];
574
- case 2:
575
- _a.sent();
576
- this.saveProcessInfo({
577
- startTimestamp: null,
578
- });
579
- return [3 /*break*/, 4];
580
- case 3:
581
- error_5 = _a.sent();
582
- this.saveProcessInfo({
583
- startTimestamp: null,
584
- });
585
- index_1.Helpers.throw(error_5);
586
- return [3 /*break*/, 4];
587
- case 4: return [2 /*return*/];
588
- }
589
- });
590
- });
591
- };
592
- //#endregion
593
- //#region protected methods / wait for process port saved to disk
594
- BaseCliWorker.prototype.waitForProcessPortSavedToDisk = function () {
595
- return tslib_1.__awaiter(this, void 0, void 0, function () {
596
- var portForRemote, MAX_TRYS, i;
597
- return tslib_1.__generator(this, function (_a) {
598
- switch (_a.label) {
599
- case 0:
600
- portForRemote = this.processLocalInfoObj.port;
601
- MAX_TRYS = 10;
602
- i = 0;
603
- if (!!portForRemote) return [3 /*break*/, 5];
604
- _a.label = 1;
605
- case 1:
606
- if (!!portForRemote) return [3 /*break*/, 5];
607
- i++;
608
- portForRemote = this.processLocalInfoObj.port;
609
- if (!portForRemote) return [3 /*break*/, 2];
610
- return [3 /*break*/, 5];
611
- case 2:
612
- index_1.Helpers.log("Waiting for port to be available...");
613
- if (i > MAX_TRYS) {
614
- index_1.Helpers.throw("Can't get port for remote connection.." +
615
- " worker process did not start correctly");
616
- }
617
- return [4 /*yield*/, index_1.Helpers.wait(1)];
618
- case 3:
619
- _a.sent();
620
- _a.label = 4;
621
- case 4: return [3 /*break*/, 1];
622
- case 5: return [2 /*return*/];
623
- }
624
- });
625
- });
626
- };
627
- //#endregion
628
- //#region protected methods / get free port
629
- BaseCliWorker.prototype.getServicePort = function () {
630
- return tslib_1.__awaiter(this, void 0, void 0, function () {
631
- var port;
632
- return tslib_1.__generator(this, function (_a) {
633
- switch (_a.label) {
634
- case 0: return [4 /*yield*/, tnp_core_1.Utils.getFreePort({
635
- startFrom: START_PORT_FOR_SERVICES,
636
- })];
637
- case 1:
638
- port = _a.sent();
639
- this.saveProcessInfo({
640
- port: port,
641
- serviceID: this.serviceID,
642
- pid: process.pid,
643
- startTimestamp: Date.now(),
644
- version: this.serviceVersion,
645
- });
646
- return [2 /*return*/, port];
647
- }
648
- });
649
- });
650
- };
651
- return BaseCliWorker;
652
- }());
653
- exports.BaseCliWorker = BaseCliWorker;
654
- //# sourceMappingURL=base-cli-worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-cli-worker.js","sourceRoot":"","sources":["/Users/dfilipiak/projects/npm/taon-dev/tnp-helpers/src/lib/base/base-cli-worker.ts"],"names":[],"mappings":"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"}