tnp-helpers 19.0.66 → 19.0.67
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/browser/fesm2022/tnp-helpers.mjs +441 -78
- package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
- package/browser/lib/base/classes/base-cli-worker/base-cli-worker-config.d.ts +4 -0
- package/browser/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.d.ts +3 -2
- package/browser/lib/base/classes/base-cli-worker/base-cli-worker.d.ts +27 -0
- package/browser/lib/base/classes/base-cli-worker/base-cli-worker.models.d.ts +5 -2
- package/browser/lib/base/classes/base-cli-worker/base-cli-worker.utils.d.ts +2 -0
- package/browser/lib/base/classes/base-cli-worker/index.d.ts +2 -1
- package/browser/lib/base/classes/base-docker.d.ts +3 -7
- package/browser/lib/base/classes/base-global-command-line.d.ts +26 -15
- package/browser/lib/base/classes/base-node-modules.d.ts +1 -0
- package/browser/lib/base/classes/base-vscode.d.ts +1 -1
- package/browser/lib/build-info._auto-generated_.d.ts +1 -1
- package/browser/lib/helpers/helpers.d.ts +0 -5
- package/browser/lib/utils.d.ts +27 -1
- package/browser/package.json +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker-config.d.ts +4 -0
- package/lib/base/classes/base-cli-worker/base-cli-worker-config.js +4 -0
- package/lib/base/classes/base-cli-worker/base-cli-worker-config.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.d.ts +3 -2
- package/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.js +21 -6
- package/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker.d.ts +27 -0
- package/lib/base/classes/base-cli-worker/base-cli-worker.js +56 -3
- package/lib/base/classes/base-cli-worker/base-cli-worker.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker.models.d.ts +5 -2
- package/lib/base/classes/base-cli-worker/base-cli-worker.models.js +2 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker.models.js.map +1 -1
- package/lib/base/classes/base-cli-worker/base-cli-worker.utils.d.ts +2 -0
- package/lib/base/classes/base-cli-worker/base-cli-worker.utils.js +11 -0
- package/lib/base/classes/base-cli-worker/base-cli-worker.utils.js.map +1 -1
- package/lib/base/classes/base-cli-worker/index.d.ts +1 -0
- package/lib/base/classes/base-cli-worker/index.js +1 -0
- package/lib/base/classes/base-cli-worker/index.js.map +1 -1
- package/lib/base/classes/base-docker.d.ts +3 -7
- package/lib/base/classes/base-docker.js +6 -19
- package/lib/base/classes/base-docker.js.map +1 -1
- package/lib/base/classes/base-git.js +23 -8
- package/lib/base/classes/base-git.js.map +1 -1
- package/lib/base/classes/base-global-command-line.backend.d.ts +13 -1
- package/lib/base/classes/base-global-command-line.backend.js +416 -11
- package/lib/base/classes/base-global-command-line.backend.js.map +1 -1
- package/lib/base/classes/base-global-command-line.d.ts +12 -1
- package/lib/base/classes/base-global-command-line.js +81 -3
- package/lib/base/classes/base-global-command-line.js.map +1 -1
- package/lib/base/classes/base-ignore-hide.js +4 -0
- package/lib/base/classes/base-ignore-hide.js.map +1 -1
- package/lib/base/classes/base-node-modules.d.ts +1 -0
- package/lib/base/classes/base-node-modules.js +22 -1
- package/lib/base/classes/base-node-modules.js.map +1 -1
- package/lib/base/classes/base-npm-helpers.js +1 -1
- package/lib/base/classes/base-npm-helpers.js.map +1 -1
- package/lib/base/classes/base-powershell.d.ts +1 -0
- package/lib/base/classes/base-powershell.js +13 -0
- package/lib/base/classes/base-powershell.js.map +1 -1
- package/lib/base/classes/base-process/base-process-api.service.d.ts +7 -0
- package/lib/base/classes/base-process/base-process.context.d.ts +19 -0
- package/lib/base/classes/base-process/base-process.context.js +22 -0
- package/lib/base/classes/base-process/base-process.context.js.map +1 -0
- package/lib/base/classes/base-process/base-process.controller.d.ts +17 -0
- package/lib/base/classes/base-process/base-process.controller.js +91 -0
- package/lib/base/classes/base-process/base-process.controller.js.map +1 -0
- package/lib/base/classes/base-process/base-process.d.ts +8 -0
- package/lib/base/classes/base-process/base-process.defaults-values.d.ts +2 -0
- package/lib/base/classes/base-process/base-process.defaults-values.js +9 -0
- package/lib/base/classes/base-process/base-process.defaults-values.js.map +1 -0
- package/lib/base/classes/base-process/base-process.js +62 -0
- package/lib/base/classes/base-process/base-process.js.map +1 -0
- package/lib/base/classes/base-process/base-process.models.d.ts +6 -0
- package/lib/base/classes/base-process/base-process.models.js +3 -0
- package/lib/base/classes/base-process/base-process.models.js.map +1 -0
- package/lib/base/classes/base-process/base-process.provider.d.ts +16 -0
- package/lib/base/classes/base-process/base-process.provider.js +69 -0
- package/lib/base/classes/base-process/base-process.provider.js.map +1 -0
- package/lib/base/classes/base-process/base-process.repository copy.d.ts +8 -0
- package/lib/base/classes/base-process/base-process.repository copy.js +32 -0
- package/lib/base/classes/base-process/base-process.repository copy.js.map +1 -0
- package/lib/base/classes/base-process/base-process.repository.d.ts +8 -0
- package/lib/base/classes/base-process/base-process.repository.js +32 -0
- package/lib/base/classes/base-process/base-process.repository.js.map +1 -0
- package/lib/base/classes/base-process/base-process.terminal-ui.d.ts +11 -0
- package/lib/base/classes/base-process/base-process.terminal-ui.js +54 -0
- package/lib/base/classes/base-process/base-process.terminal-ui.js.map +1 -0
- package/lib/base/classes/base-process/base-process.worker.d.ts +16 -0
- package/lib/base/classes/base-process/base-process.worker.js +29 -0
- package/lib/base/classes/base-process/base-process.worker.js.map +1 -0
- package/lib/base/classes/base-process/index.d.ts +1 -0
- package/lib/base/classes/base-process/index.js +22 -0
- package/lib/base/classes/base-process/index.js.map +1 -0
- package/lib/base/classes/base-process/processes.repository.d.ts +0 -0
- package/lib/base/classes/base-process/processes.repository.js +5 -0
- package/lib/base/classes/base-process/processes.repository.js.map +1 -0
- package/lib/base/classes/base-project.d.ts +1 -1
- package/lib/base/classes/base-vscode.d.ts +1 -1
- package/lib/base/classes/base-vscode.js +9 -1
- package/lib/base/classes/base-vscode.js.map +1 -1
- package/lib/base/tcp-udp-ports/not-assignable-port.entity.js +2 -2
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/env/env.angular-node-app.d.ts +1 -2
- package/lib/env/env.angular-node-app.js +3 -4
- package/lib/env/env.angular-node-app.js.map +1 -1
- package/lib/env/env.docs-webapp.d.ts +1 -2
- package/lib/env/env.docs-webapp.js +3 -4
- package/lib/env/env.docs-webapp.js.map +1 -1
- package/lib/env/env.electron-app.d.ts +1 -2
- package/lib/env/env.electron-app.js +3 -4
- package/lib/env/env.electron-app.js.map +1 -1
- package/lib/env/env.mobile-app.d.ts +1 -2
- package/lib/env/env.mobile-app.js +3 -4
- package/lib/env/env.mobile-app.js.map +1 -1
- package/lib/env/env.npm-lib-and-cli-tool.d.ts +1 -2
- package/lib/env/env.npm-lib-and-cli-tool.js +3 -4
- package/lib/env/env.npm-lib-and-cli-tool.js.map +1 -1
- package/lib/env/env.vscode-plugin.d.ts +1 -2
- package/lib/env/env.vscode-plugin.js +3 -4
- package/lib/env/env.vscode-plugin.js.map +1 -1
- package/lib/env-backend._auto-generated_.d.ts +34 -0
- package/lib/env-backend._auto-generated_.js +38 -0
- package/lib/env-backend._auto-generated_.js.map +1 -0
- package/lib/env-browser._auto-generated_.d.ts +34 -0
- package/lib/env-browser._auto-generated_.js +38 -0
- package/lib/env-browser._auto-generated_.js.map +1 -0
- package/lib/env.backend.d.ts +34 -0
- package/lib/env.backend.js +40 -0
- package/lib/env.backend.js.map +1 -0
- package/lib/env.browser.d.ts +34 -0
- package/lib/helpers/for-backend/helpers-dependencies.backend.d.ts +0 -1
- package/lib/helpers/for-backend/helpers-dependencies.backend.js +0 -27
- package/lib/helpers/for-backend/helpers-dependencies.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-file-folders.js +11 -3
- package/lib/helpers/for-backend/helpers-file-folders.js.map +1 -1
- package/lib/helpers/for-browser/angular.helper.js +2 -2
- package/lib/helpers/helpers.d.ts +0 -8
- package/lib/helpers/helpers.js +1 -55
- package/lib/helpers/helpers.js.map +1 -1
- package/lib/old/base-component.js +2 -2
- package/lib/old/base-formly-component.js +2 -2
- package/lib/old/dual-component-ctrl.js +2 -2
- package/lib/utils.d.ts +27 -1
- package/lib/utils.js +141 -4
- package/lib/utils.js.map +1 -1
- package/lib/validators/validators-git.js.map +1 -1
- package/package.json +1 -1
- package/tmp-environment.json +7 -11
- package/websql/fesm2022/tnp-helpers.mjs +442 -79
- package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
- package/websql/lib/base/classes/base-cli-worker/base-cli-worker-config.d.ts +4 -0
- package/websql/lib/base/classes/base-cli-worker/base-cli-worker-terminal-ui.d.ts +3 -2
- package/websql/lib/base/classes/base-cli-worker/base-cli-worker.d.ts +27 -0
- package/websql/lib/base/classes/base-cli-worker/base-cli-worker.models.d.ts +5 -2
- package/websql/lib/base/classes/base-cli-worker/base-cli-worker.utils.d.ts +2 -0
- package/websql/lib/base/classes/base-cli-worker/index.d.ts +2 -1
- package/websql/lib/base/classes/base-docker.d.ts +3 -7
- package/websql/lib/base/classes/base-global-command-line.d.ts +26 -15
- package/websql/lib/base/classes/base-node-modules.d.ts +1 -0
- package/websql/lib/base/classes/base-vscode.d.ts +1 -1
- package/websql/lib/build-info._auto-generated_.d.ts +1 -1
- package/websql/lib/helpers/helpers.d.ts +0 -5
- package/websql/lib/utils.d.ts +27 -1
- package/websql/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
import { CoreModels } from 'tnp-core/browser';
|
|
3
|
-
import type { BaseCliWorker } from './base-cli-worker';
|
|
3
|
+
import type { BaseCliWorker, BaseCliWorkerGuiUrlOptions } from './base-cli-worker';
|
|
4
4
|
import type { BaseCliWorkerController } from './base-cli-worker-controller';
|
|
5
5
|
export type BaseWorkerTerminalActionReturnType = {
|
|
6
6
|
[uniqeActionName: string]: {
|
|
@@ -18,7 +18,7 @@ export declare class BaseCliWorkerTerminalUI<WORKER extends BaseCliWorker<BaseCl
|
|
|
18
18
|
* override whole terminal header
|
|
19
19
|
*/
|
|
20
20
|
protected header(): Promise<void>;
|
|
21
|
-
infoMessageBelowHeader(): Promise<void>;
|
|
21
|
+
infoMessageBelowHeader(options?: BaseCliWorkerGuiUrlOptions): Promise<void>;
|
|
22
22
|
protected get backAction(): {
|
|
23
23
|
back: {
|
|
24
24
|
name: string;
|
|
@@ -34,6 +34,7 @@ export declare class BaseCliWorkerTerminalUI<WORKER extends BaseCliWorker<BaseCl
|
|
|
34
34
|
exitIsOnlyReturn?: boolean;
|
|
35
35
|
chooseAction?: boolean;
|
|
36
36
|
}): BaseWorkerTerminalActionReturnType;
|
|
37
|
+
private headerDisplayed;
|
|
37
38
|
infoScreen(options?: {
|
|
38
39
|
exitIsOnlyReturn?: boolean;
|
|
39
40
|
}): Promise<void>;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
3
|
import { EndpointContext, Taon } from 'taon/browser';
|
|
3
4
|
import { BaseCliWorkerConfig } from './base-cli-worker-config';
|
|
4
5
|
import type { BaseCliWorkerController } from './base-cli-worker-controller';
|
|
5
6
|
import { BaseCliWorkerTerminalUI } from './base-cli-worker-terminal-ui';
|
|
6
7
|
import { BaseCliMethodOptions } from './base-cli-worker.models';
|
|
8
|
+
export interface BaseCliWorkerGuiUrlOptions {
|
|
9
|
+
domain?: string;
|
|
10
|
+
port?: number | null;
|
|
11
|
+
useHttps?: boolean;
|
|
12
|
+
}
|
|
7
13
|
export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerController<any>, TERMINAL_UI extends BaseCliWorkerTerminalUI<any> = any> {
|
|
8
14
|
/**
|
|
9
15
|
* unique id for service
|
|
@@ -17,6 +23,16 @@ export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerCon
|
|
|
17
23
|
* unique id for service
|
|
18
24
|
*/
|
|
19
25
|
readonly serviceVersion: string;
|
|
26
|
+
/**
|
|
27
|
+
* Indicates if worker is part of cloud
|
|
28
|
+
* and should use cloud ip address
|
|
29
|
+
*/
|
|
30
|
+
static readonly isCloudEnable: Pick<BehaviorSubject<boolean>, 'next' | 'getValue'>;
|
|
31
|
+
/**
|
|
32
|
+
* Cloud ip address of the worker (if part of cloud)
|
|
33
|
+
*/
|
|
34
|
+
static readonly cloudIp: Pick<BehaviorSubject<string | null>, 'next' | 'getValue'>;
|
|
35
|
+
private static workers;
|
|
20
36
|
readonly SPECIAL_WORKER_READY_MESSAGE = "$$$ WORKER_READY $$$";
|
|
21
37
|
/**
|
|
22
38
|
* dependency workers that should be started before this worker
|
|
@@ -24,6 +40,16 @@ export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerCon
|
|
|
24
40
|
readonly dependencyWorkers: Map<string, BaseCliWorker<any, any>>;
|
|
25
41
|
readonly terminalUI: TERMINAL_UI;
|
|
26
42
|
readonly workerContextTemplate: ReturnType<typeof Taon.createContextTemplate>;
|
|
43
|
+
/**
|
|
44
|
+
* Name of the worker context
|
|
45
|
+
*/
|
|
46
|
+
get contextName(): string;
|
|
47
|
+
/**
|
|
48
|
+
* Port where worker is running
|
|
49
|
+
* (getter only accessible from host machine)
|
|
50
|
+
*/
|
|
51
|
+
get port(): number | undefined;
|
|
52
|
+
getWorkerInfoGuiUrl(options?: BaseCliWorkerGuiUrlOptions): string;
|
|
27
53
|
readonly controllerClass: new () => REMOTE_CTRL;
|
|
28
54
|
constructor(
|
|
29
55
|
/**
|
|
@@ -38,6 +64,7 @@ export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerCon
|
|
|
38
64
|
* unique id for service
|
|
39
65
|
*/
|
|
40
66
|
serviceVersion: string);
|
|
67
|
+
static getAllWorkersStartedInSystemFromCurrentCli(): BaseCliWorker<any, any>[];
|
|
41
68
|
get processLocalInfoObj(): BaseCliWorkerConfig;
|
|
42
69
|
getRemoteControllerFor<ctrl = REMOTE_CTRL>(options?: {
|
|
43
70
|
methodOptions: Partial<BaseCliMethodOptions>;
|
|
@@ -6,12 +6,15 @@ interface BaseCliWorkerOptionCallable {
|
|
|
6
6
|
*/
|
|
7
7
|
calledFrom: string;
|
|
8
8
|
}
|
|
9
|
-
declare class BaseCliWorkerConfigGetContextOptions {
|
|
9
|
+
export declare class BaseCliWorkerConfigGetContextOptions {
|
|
10
10
|
/**
|
|
11
11
|
* default localhost
|
|
12
12
|
*/
|
|
13
13
|
ipAddressOfTaonInstance?: string;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* if null nothing is used as port (ip address will be clean)
|
|
16
|
+
*/
|
|
17
|
+
port?: number | null;
|
|
15
18
|
}
|
|
16
19
|
/**
|
|
17
20
|
* Default mode: DETACHED_CHILD_PROCESS
|
|
@@ -4,4 +4,5 @@ export * from './base-cli-worker.models';
|
|
|
4
4
|
export * from './base-cli-worker-database-config';
|
|
5
5
|
export * from './base-cli-worker-controller';
|
|
6
6
|
export * from './base-cli-worker-config';
|
|
7
|
-
export * from './base-cli-worker-terminal-ui';
|
|
7
|
+
export * from './base-cli-worker-terminal-ui';
|
|
8
|
+
export * from './base-cli-worker.utils';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import type { ChildProcess
|
|
2
|
+
import type { ChildProcess } from 'child_process';
|
|
3
|
+
import { UtilsDocker } from '../../utils';
|
|
3
4
|
import { BaseFeatureForProject } from './base-feature-for-project';
|
|
4
5
|
import { BaseProject } from './base-project';
|
|
5
6
|
export declare class BaseDocker<PROJECT extends BaseProject = any> extends BaseFeatureForProject<PROJECT> {
|
|
@@ -7,11 +8,6 @@ export declare class BaseDocker<PROJECT extends BaseProject = any> extends BaseF
|
|
|
7
8
|
* Updates ports in .env file based on available ports range.
|
|
8
9
|
*/
|
|
9
10
|
updateDockerComposePorts(): Promise<void>;
|
|
10
|
-
|
|
11
|
-
composeFileName?: string;
|
|
12
|
-
cwd?: string;
|
|
13
|
-
env?: NodeJS.ProcessEnv;
|
|
14
|
-
stdio?: StdioOptions;
|
|
15
|
-
}): ChildProcess;
|
|
11
|
+
getDockerComposeActionChildProcess(action: UtilsDocker.DockerComposeActionType, options?: UtilsDocker.DockerComposeActionOptions): ChildProcess;
|
|
16
12
|
removeAllImagesBy_Env_COMPOSE_PROJECT_NAME(): Promise<void>;
|
|
17
13
|
}
|
|
@@ -35,6 +35,7 @@ export declare class BaseGlobalCommandLine<PARAMS = any, PROJECT extends BasePro
|
|
|
35
35
|
update(): Promise<any>;
|
|
36
36
|
private updateProject;
|
|
37
37
|
deepUp(noExit?: boolean): Promise<any>;
|
|
38
|
+
upAll(noExit?: boolean): Promise<any>;
|
|
38
39
|
deepUpForce(noExit?: boolean): Promise<any>;
|
|
39
40
|
deepUpdateForce(noExit?: boolean): Promise<any>;
|
|
40
41
|
deepUpdate(noExit?: boolean): Promise<any>;
|
|
@@ -68,18 +69,18 @@ export declare class BaseGlobalCommandLine<PARAMS = any, PROJECT extends BasePro
|
|
|
68
69
|
*/
|
|
69
70
|
stashAll(): Promise<any>;
|
|
70
71
|
/**
|
|
71
|
-
* push force to all
|
|
72
|
+
* push force to all origins
|
|
72
73
|
*/
|
|
73
|
-
pushAllForce(): Promise<
|
|
74
|
-
pAllForce(): Promise<
|
|
75
|
-
pAllf(): Promise<
|
|
76
|
-
pAll(): Promise<
|
|
74
|
+
pushAllForce(): Promise<void>;
|
|
75
|
+
pAllForce(): Promise<void>;
|
|
76
|
+
pAllf(): Promise<void>;
|
|
77
|
+
pAll(): Promise<void>;
|
|
77
78
|
/**
|
|
78
79
|
* push to all origins
|
|
79
80
|
*/
|
|
80
|
-
pushAll(force?: boolean): Promise<
|
|
81
|
-
forcePush(): Promise<
|
|
82
|
-
pushForce(): Promise<
|
|
81
|
+
pushAll(force?: boolean): Promise<void>;
|
|
82
|
+
forcePush(): Promise<void>;
|
|
83
|
+
pushForce(): Promise<void>;
|
|
83
84
|
/**
|
|
84
85
|
* Commit and push this for single repo
|
|
85
86
|
*/
|
|
@@ -89,14 +90,14 @@ export declare class BaseGlobalCommandLine<PARAMS = any, PROJECT extends BasePro
|
|
|
89
90
|
origin?: string;
|
|
90
91
|
commitMessageRequired?: boolean;
|
|
91
92
|
noExit?: boolean;
|
|
92
|
-
}): Promise<
|
|
93
|
-
_preventPushPullFromNotCorrectBranch(): Promise<
|
|
94
|
-
qPush(): Promise<
|
|
95
|
-
quickPush(): Promise<
|
|
96
|
-
repushauto(): Promise<
|
|
97
|
-
rePush(skipQuesion?: boolean): Promise<
|
|
93
|
+
}): Promise<void>;
|
|
94
|
+
_preventPushPullFromNotCorrectBranch(): Promise<void>;
|
|
95
|
+
qPush(): Promise<void>;
|
|
96
|
+
quickPush(): Promise<void>;
|
|
97
|
+
repushauto(): Promise<void>;
|
|
98
|
+
rePush(skipQuesion?: boolean): Promise<void>;
|
|
98
99
|
push(options?: PushProcessOptions): Promise<void>;
|
|
99
|
-
melt(): Promise<
|
|
100
|
+
melt(): Promise<void>;
|
|
100
101
|
meltUp(): Promise<any>;
|
|
101
102
|
meltAll(): Promise<any>;
|
|
102
103
|
private __meltCommitsFunc;
|
|
@@ -251,4 +252,14 @@ export declare class BaseGlobalCommandLine<PARAMS = any, PROJECT extends BasePro
|
|
|
251
252
|
zsStart(): any;
|
|
252
253
|
startZscaller(): any;
|
|
253
254
|
killZscaller(): any;
|
|
255
|
+
hasCommand(): Promise<void>;
|
|
256
|
+
hasCommandSync(): void;
|
|
257
|
+
publicIpAddress(): Promise<void>;
|
|
258
|
+
publicIp(): Promise<void>;
|
|
259
|
+
localIps(): Promise<void>;
|
|
260
|
+
isOnline(): Promise<any>;
|
|
261
|
+
configureBash(): Promise<void>;
|
|
262
|
+
configureShell(): Promise<void>;
|
|
263
|
+
confBash(): void;
|
|
264
|
+
confShell(): void;
|
|
254
265
|
}
|
|
@@ -37,6 +37,7 @@ export declare class BaseNodeModules<NPM_HELPERS extends BaseNpmHelpers = BaseNp
|
|
|
37
37
|
get realPath(): string;
|
|
38
38
|
protected preventWrongLinkDestination(dest: string): string;
|
|
39
39
|
linkToProject(project: Partial<BaseProject>): any;
|
|
40
|
+
copyToProject(project: BaseProject): void;
|
|
40
41
|
linkToLocation(location: string): void;
|
|
41
42
|
makeSureInstalled(options?: Omit<CoreModels.NpmInstallOptions, 'pkg'>): Promise<void>;
|
|
42
43
|
remove(options?: {
|
|
@@ -38,7 +38,7 @@ export declare class BaseVscodeHelpers<PROJECT extends BaseProject = any> extend
|
|
|
38
38
|
*/
|
|
39
39
|
protected stripVersion(folderName: string): string;
|
|
40
40
|
get installedExtensions(): string[];
|
|
41
|
-
applyProperGlobalSettings(): Promise<void>;
|
|
41
|
+
static applyProperGlobalSettings(): Promise<void>;
|
|
42
42
|
/**
|
|
43
43
|
* by default left menu color and bottom status bar are the same
|
|
44
44
|
*/
|
|
@@ -59,11 +59,6 @@ export declare class HelpersTaon extends CoreHelpers {
|
|
|
59
59
|
uniqArray<T = any>(array: any[], uniqueProperty?: keyof T): T[];
|
|
60
60
|
slash(pathFromWindowsOrUnixType: string): any;
|
|
61
61
|
isElevated(): Promise<void>;
|
|
62
|
-
/**
|
|
63
|
-
* TODO fix this methods
|
|
64
|
-
*/
|
|
65
|
-
localIpAddress(): Promise<any>;
|
|
66
|
-
allLocalIpAddresses(): URL[];
|
|
67
62
|
mesureExectionInMs(description: string, functionToExecute: Function, ...functionArguments: any[]): Promise<number>;
|
|
68
63
|
mesureExectionInMsSync(description: string, functionToExecute: () => void): number;
|
|
69
64
|
waitForCondition(conditionFn: (any: any) => boolean, howOfftenCheckInMs?: number): Promise<unknown>;
|
package/browser/lib/utils.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
+
import { ChildProcess, StdioOptions } from 'node:child_process';
|
|
2
3
|
import type * as ts from 'typescript';
|
|
3
4
|
export declare namespace UtilsNpm {
|
|
4
5
|
const isSpecialVersion: (version: string) => boolean;
|
|
@@ -194,5 +195,30 @@ export declare namespace UtilsPasswords {
|
|
|
194
195
|
}
|
|
195
196
|
export declare namespace UtilsDocker {
|
|
196
197
|
const DOCKER_LABEL_KEY = "com.docker.compose.project";
|
|
197
|
-
const
|
|
198
|
+
const DOCKER_TAON_PROJECT_LABEL = "com.docker.compose.taon.project=true";
|
|
199
|
+
const cleanImagesAndContainersByDockerLabel: (labelKey: string, labelValue: string) => Promise<void>;
|
|
200
|
+
interface DockerComposeActionOptions {
|
|
201
|
+
composeFileName?: string;
|
|
202
|
+
cwd?: string;
|
|
203
|
+
env?: NodeJS.ProcessEnv;
|
|
204
|
+
skipBuild?: boolean;
|
|
205
|
+
stdio?: StdioOptions;
|
|
206
|
+
useFirstYmlFound?: boolean;
|
|
207
|
+
}
|
|
208
|
+
type DockerComposeActionType = 'up' | 'down';
|
|
209
|
+
/**
|
|
210
|
+
* @returns cmd + args array
|
|
211
|
+
* you can use with child_process.spawn
|
|
212
|
+
* const [cmd, ...args] = getDockerComposeActionCommand('up');
|
|
213
|
+
* child.spawn(cmd, args, { ... });
|
|
214
|
+
*
|
|
215
|
+
* @param action 'up' | 'down'
|
|
216
|
+
*/
|
|
217
|
+
const getDockerComposeActionCommand: (action: DockerComposeActionType, options?: Omit<DockerComposeActionOptions, "cwd" | "env" | "stdio" | "useFirstYmlFound">) => string[];
|
|
218
|
+
const getDockerComposeActionChildProcess: (action: DockerComposeActionType, options?: DockerComposeActionOptions) => ChildProcess;
|
|
219
|
+
const removeAllTaonContainersAndImagesFromDocker: () => Promise<void>;
|
|
220
|
+
/**
|
|
221
|
+
* @TODO @REFACTOR use async stuff
|
|
222
|
+
*/
|
|
223
|
+
const linkPodmanAsDockerIfNecessary: () => Promise<void>;
|
|
198
224
|
}
|
package/browser/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-cli-worker-config.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,mCAA6B;AAC7B,sCAAiC;AAEjC,4BAA4B;AAC5B,MAAa,mBAAmB;IAC9B,MAAM,CAAC,IAAI,CAAC,GAAiC;QAC3C,OAAO,OAAC,CAAC,KAAK,CAAC,IAAI,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,IAAI,CAAS;IACb;;OAEG;IACH,SAAS,CAAS;IAClB;;OAEG;IACH,GAAG,CAAS;IACZ;;;OAGG;IACH,cAAc,CAAS;IACvB;;OAEG;IACH,OAAO,CAAS;IAEhB,iCAAiC,CAAC,KAA0B;QAC1D,sBAAsB;QACtB,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACpC,KAAK,CAAC;QACR,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QACD,YAAY;IACd,CAAC;IAED,QAAQ,CAAC,KAA0B;QACjC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,IAAI,CAAC,GAAG;YACV,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YAClC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YACxB,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CACvB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"base-cli-worker-config.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,mCAA6B;AAC7B,sCAAiC;AAEjC,4BAA4B;AAC5B,MAAa,mBAAmB;IAC9B,MAAM,CAAC,IAAI,CAAC,GAAiC;QAC3C,OAAO,OAAC,CAAC,KAAK,CAAC,IAAI,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,UAAU,CAAS;IACnB;;OAEG;IACH,IAAI,CAAS;IACb;;OAEG;IACH,SAAS,CAAS;IAClB;;OAEG;IACH,GAAG,CAAS;IACZ;;;OAGG;IACH,cAAc,CAAS;IACvB;;OAEG;IACH,OAAO,CAAS;IAEhB,iCAAiC,CAAC,KAA0B;QAC1D,sBAAsB;QACtB,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACpC,KAAK,CAAC;QACR,CAAC;QACD,IAAI,CAAC;YACH,OAAO,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QACD,YAAY;IACd,CAAC;IAED,QAAQ,CAAC,KAA0B;QACjC,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,IAAI,CAAC,GAAG;YACV,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;YAClC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YACxB,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CACvB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACpD,CAAC;CACF;AA/DD,kDA+DC;AACD,YAAY"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CoreModels } from 'tnp-core';
|
|
2
|
-
import type { BaseCliWorker } from './base-cli-worker';
|
|
2
|
+
import type { BaseCliWorker, BaseCliWorkerGuiUrlOptions } from './base-cli-worker';
|
|
3
3
|
import type { BaseCliWorkerController } from './base-cli-worker-controller';
|
|
4
4
|
export type BaseWorkerTerminalActionReturnType = {
|
|
5
5
|
[uniqeActionName: string]: {
|
|
@@ -17,7 +17,7 @@ export declare class BaseCliWorkerTerminalUI<WORKER extends BaseCliWorker<BaseCl
|
|
|
17
17
|
* override whole terminal header
|
|
18
18
|
*/
|
|
19
19
|
protected header(): Promise<void>;
|
|
20
|
-
infoMessageBelowHeader(): Promise<void>;
|
|
20
|
+
infoMessageBelowHeader(options?: BaseCliWorkerGuiUrlOptions): Promise<void>;
|
|
21
21
|
protected get backAction(): {
|
|
22
22
|
back: {
|
|
23
23
|
name: string;
|
|
@@ -33,6 +33,7 @@ export declare class BaseCliWorkerTerminalUI<WORKER extends BaseCliWorker<BaseCl
|
|
|
33
33
|
exitIsOnlyReturn?: boolean;
|
|
34
34
|
chooseAction?: boolean;
|
|
35
35
|
}): BaseWorkerTerminalActionReturnType;
|
|
36
|
+
private headerDisplayed;
|
|
36
37
|
infoScreen(options?: {
|
|
37
38
|
exitIsOnlyReturn?: boolean;
|
|
38
39
|
}): Promise<void>;
|
|
@@ -42,12 +42,13 @@ class BaseCliWorkerTerminalUI {
|
|
|
42
42
|
}
|
|
43
43
|
//#endregion
|
|
44
44
|
//#region protected methods / info message below header
|
|
45
|
-
async infoMessageBelowHeader() {
|
|
45
|
+
async infoMessageBelowHeader(options) {
|
|
46
46
|
//#region @backendFunc
|
|
47
|
+
options = options || {};
|
|
47
48
|
lib_2.Helpers.info(`
|
|
48
49
|
Service ${lib_3.chalk.bold.red(this.worker.serviceID)}` +
|
|
49
50
|
` (version: ${this.worker.serviceVersion}) started..
|
|
50
|
-
Check info here
|
|
51
|
+
Check info here ${this.worker.getWorkerInfoGuiUrl(options)}
|
|
51
52
|
Worker started by ${lib_3.chalk.bold(lib_1.config.frameworkName)}
|
|
52
53
|
(cwd: ${(0, lib_2.crossPlatformPath)(process.cwd())})
|
|
53
54
|
`);
|
|
@@ -86,8 +87,7 @@ class BaseCliWorkerTerminalUI {
|
|
|
86
87
|
name: 'Open browser with service info',
|
|
87
88
|
action: async () => {
|
|
88
89
|
const openInBrowser = require('open');
|
|
89
|
-
openInBrowser(
|
|
90
|
-
`/api/${this.worker.workerContextTemplate().contextName}/info`);
|
|
90
|
+
openInBrowser(this.worker.getWorkerInfoGuiUrl());
|
|
91
91
|
},
|
|
92
92
|
},
|
|
93
93
|
exit: {
|
|
@@ -112,15 +112,30 @@ class BaseCliWorkerTerminalUI {
|
|
|
112
112
|
}
|
|
113
113
|
//#endregion
|
|
114
114
|
//#region protected methods / info screen
|
|
115
|
+
headerDisplayed = false;
|
|
115
116
|
async infoScreen(options) {
|
|
116
117
|
options = options || {};
|
|
117
118
|
while (true) {
|
|
118
119
|
if (!lib_2.UtilsTerminal.isVerboseModeTaon()) {
|
|
119
120
|
lib_2.UtilsTerminal.clearConsole();
|
|
120
121
|
}
|
|
121
|
-
await this.header();
|
|
122
|
-
await this.infoMessageBelowHeader();
|
|
123
122
|
const choices = this.getWorkerTerminalActions(options);
|
|
123
|
+
if (this.headerDisplayed) {
|
|
124
|
+
await this.infoMessageBelowHeader();
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.headerDisplayed = true;
|
|
128
|
+
await this.header();
|
|
129
|
+
await lib_2.UtilsTerminal.pressAnyKeyToContinueAsync({
|
|
130
|
+
message: `\nWelcome to ${lib_3.chalk.bold(this.worker.serviceID) +
|
|
131
|
+
lib_3.chalk.bold('@') +
|
|
132
|
+
lib_3.chalk.bold(this.worker.serviceVersion)} Terminal UI.` +
|
|
133
|
+
`\n
|
|
134
|
+
Press any key to continue...`,
|
|
135
|
+
});
|
|
136
|
+
lib_2.UtilsTerminal.clearConsole();
|
|
137
|
+
await this.infoMessageBelowHeader();
|
|
138
|
+
}
|
|
124
139
|
const choice = await lib_2.UtilsTerminal.select({
|
|
125
140
|
choices,
|
|
126
141
|
question: 'Choose action',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-cli-worker-terminal-ui.js","sourceRoot":"","sources":[""],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,wCAAwC;AACxC,sCAKsB;AACtB,sCAAwC;
|
|
1
|
+
{"version":3,"file":"base-cli-worker-terminal-ui.js","sourceRoot":"","sources":[""],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
1
2
|
import { EndpointContext, Taon } from 'taon';
|
|
2
3
|
import { BaseCliWorkerConfig } from './base-cli-worker-config';
|
|
3
4
|
import type { BaseCliWorkerController } from './base-cli-worker-controller';
|
|
4
5
|
import { BaseCliWorkerTerminalUI } from './base-cli-worker-terminal-ui';
|
|
5
6
|
import { BaseCliMethodOptions } from './base-cli-worker.models';
|
|
7
|
+
export interface BaseCliWorkerGuiUrlOptions {
|
|
8
|
+
domain?: string;
|
|
9
|
+
port?: number | null;
|
|
10
|
+
useHttps?: boolean;
|
|
11
|
+
}
|
|
6
12
|
export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerController<any>, TERMINAL_UI extends BaseCliWorkerTerminalUI<any> = any> {
|
|
7
13
|
/**
|
|
8
14
|
* unique id for service
|
|
@@ -16,6 +22,16 @@ export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerCon
|
|
|
16
22
|
* unique id for service
|
|
17
23
|
*/
|
|
18
24
|
readonly serviceVersion: string;
|
|
25
|
+
/**
|
|
26
|
+
* Indicates if worker is part of cloud
|
|
27
|
+
* and should use cloud ip address
|
|
28
|
+
*/
|
|
29
|
+
static readonly isCloudEnable: Pick<BehaviorSubject<boolean>, 'next' | 'getValue'>;
|
|
30
|
+
/**
|
|
31
|
+
* Cloud ip address of the worker (if part of cloud)
|
|
32
|
+
*/
|
|
33
|
+
static readonly cloudIp: Pick<BehaviorSubject<string | null>, 'next' | 'getValue'>;
|
|
34
|
+
private static workers;
|
|
19
35
|
readonly SPECIAL_WORKER_READY_MESSAGE = "$$$ WORKER_READY $$$";
|
|
20
36
|
/**
|
|
21
37
|
* dependency workers that should be started before this worker
|
|
@@ -23,6 +39,16 @@ export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerCon
|
|
|
23
39
|
readonly dependencyWorkers: Map<string, BaseCliWorker<any, any>>;
|
|
24
40
|
readonly terminalUI: TERMINAL_UI;
|
|
25
41
|
readonly workerContextTemplate: ReturnType<typeof Taon.createContextTemplate>;
|
|
42
|
+
/**
|
|
43
|
+
* Name of the worker context
|
|
44
|
+
*/
|
|
45
|
+
get contextName(): string;
|
|
46
|
+
/**
|
|
47
|
+
* Port where worker is running
|
|
48
|
+
* (getter only accessible from host machine)
|
|
49
|
+
*/
|
|
50
|
+
get port(): number | undefined;
|
|
51
|
+
getWorkerInfoGuiUrl(options?: BaseCliWorkerGuiUrlOptions): string;
|
|
26
52
|
readonly controllerClass: new () => REMOTE_CTRL;
|
|
27
53
|
constructor(
|
|
28
54
|
/**
|
|
@@ -37,6 +63,7 @@ export declare abstract class BaseCliWorker<REMOTE_CTRL extends BaseCliWorkerCon
|
|
|
37
63
|
* unique id for service
|
|
38
64
|
*/
|
|
39
65
|
serviceVersion: string);
|
|
66
|
+
static getAllWorkersStartedInSystemFromCurrentCli(): BaseCliWorker<any, any>[];
|
|
40
67
|
get processLocalInfoObj(): BaseCliWorkerConfig;
|
|
41
68
|
getRemoteControllerFor<ctrl = REMOTE_CTRL>(options?: {
|
|
42
69
|
methodOptions: Partial<BaseCliMethodOptions>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseCliWorker = void 0;
|
|
4
|
+
//#region imports
|
|
5
|
+
const rxjs_1 = require("rxjs");
|
|
4
6
|
const lib_1 = require("tnp-config/lib");
|
|
5
7
|
const lib_2 = require("tnp-core/lib");
|
|
6
8
|
const index_1 = require("../../../index");
|
|
@@ -12,11 +14,20 @@ const base_cli_worker_utils_1 = require("./base-cli-worker.utils");
|
|
|
12
14
|
//#region constants
|
|
13
15
|
const WORKER_INIT_START_TIME_LIMIT = 25; // 15 seconds max to start worker
|
|
14
16
|
const START_PORT_FOR_SERVICES = 3600;
|
|
15
|
-
//#endregion
|
|
16
17
|
class BaseCliWorker {
|
|
17
18
|
serviceID;
|
|
18
19
|
startCommand;
|
|
19
20
|
serviceVersion;
|
|
21
|
+
/**
|
|
22
|
+
* Indicates if worker is part of cloud
|
|
23
|
+
* and should use cloud ip address
|
|
24
|
+
*/
|
|
25
|
+
static isCloudEnable = new rxjs_1.BehaviorSubject(false);
|
|
26
|
+
/**
|
|
27
|
+
* Cloud ip address of the worker (if part of cloud)
|
|
28
|
+
*/
|
|
29
|
+
static cloudIp = new rxjs_1.BehaviorSubject(null);
|
|
30
|
+
static workers = new Map();
|
|
20
31
|
//#region fields & getters
|
|
21
32
|
SPECIAL_WORKER_READY_MESSAGE = lib_2.CoreModels.SPECIAL_WORKER_READY_MESSAGE;
|
|
22
33
|
/**
|
|
@@ -26,6 +37,41 @@ class BaseCliWorker {
|
|
|
26
37
|
// @ts-ignore TODO weird inheritance problem
|
|
27
38
|
terminalUI = new base_cli_worker_terminal_ui_1.BaseCliWorkerTerminalUI(this);
|
|
28
39
|
workerContextTemplate;
|
|
40
|
+
/**
|
|
41
|
+
* Name of the worker context
|
|
42
|
+
*/
|
|
43
|
+
get contextName() {
|
|
44
|
+
return this.workerContextTemplate().contextName;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Port where worker is running
|
|
48
|
+
* (getter only accessible from host machine)
|
|
49
|
+
*/
|
|
50
|
+
get port() {
|
|
51
|
+
return this.processLocalInfoObj.port;
|
|
52
|
+
}
|
|
53
|
+
getWorkerInfoGuiUrl(options) {
|
|
54
|
+
//#region @backendFunc
|
|
55
|
+
options = options || {};
|
|
56
|
+
options.domain = options.domain || lib_2.CoreModels.localhostDomain;
|
|
57
|
+
options.useHttps = lib_2._.isBoolean(options.useHttps) ? options.useHttps : false;
|
|
58
|
+
// console.log({
|
|
59
|
+
// isCloudEnable: BaseCliWorker.isCloudEnable.getValue(),
|
|
60
|
+
// cloudIp: BaseCliWorker.cloudIp.getValue(),
|
|
61
|
+
// })
|
|
62
|
+
if (BaseCliWorker.isCloudEnable.getValue()) {
|
|
63
|
+
options.domain = BaseCliWorker.cloudIp.getValue();
|
|
64
|
+
options.useHttps = true;
|
|
65
|
+
options.port = null;
|
|
66
|
+
}
|
|
67
|
+
return (`${options.useHttps ? 'https' : 'http'}://${options.domain}` +
|
|
68
|
+
`${!lib_2._.isUndefined(options.port)
|
|
69
|
+
? `${options.port === null ? '' : `:${options.port}`}`
|
|
70
|
+
: `:${this.processLocalInfoObj.port}`}` +
|
|
71
|
+
`/api/${this.workerContextTemplate().contextName}` +
|
|
72
|
+
`/${'info'}`);
|
|
73
|
+
//#endregion
|
|
74
|
+
}
|
|
29
75
|
controllerClass;
|
|
30
76
|
//#endregion
|
|
31
77
|
//#region constructor
|
|
@@ -45,9 +91,15 @@ class BaseCliWorker {
|
|
|
45
91
|
this.serviceID = serviceID;
|
|
46
92
|
this.startCommand = startCommand;
|
|
47
93
|
this.serviceVersion = serviceVersion;
|
|
94
|
+
BaseCliWorker.workers.set(this.serviceID, this);
|
|
48
95
|
}
|
|
49
96
|
//#endregion
|
|
50
97
|
//#region public
|
|
98
|
+
static getAllWorkersStartedInSystemFromCurrentCli() {
|
|
99
|
+
//#region @backendFunc
|
|
100
|
+
return Array.from(BaseCliWorker.workers.values());
|
|
101
|
+
//#endregion
|
|
102
|
+
}
|
|
51
103
|
//#region public fields & getters / process local info json object
|
|
52
104
|
get processLocalInfoObj() {
|
|
53
105
|
//#region @backendFunc
|
|
@@ -436,7 +488,7 @@ class BaseCliWorker {
|
|
|
436
488
|
}
|
|
437
489
|
//#endregion
|
|
438
490
|
i = 0;
|
|
439
|
-
const isWaitingNotCheckingWhen =
|
|
491
|
+
const isWaitingNotCheckingWhen = 40;
|
|
440
492
|
while (true) {
|
|
441
493
|
i++;
|
|
442
494
|
try {
|
|
@@ -544,7 +596,8 @@ class BaseCliWorker {
|
|
|
544
596
|
}
|
|
545
597
|
}
|
|
546
598
|
index_1.Helpers.log(`Saving process info to "${this.pathToProcessLocalInfoJson}"...`);
|
|
547
|
-
|
|
599
|
+
// Helpers.log(processConfig);
|
|
600
|
+
processConfig.pathToFile = this.pathToProcessLocalInfoJson;
|
|
548
601
|
index_1.Helpers.writeJson(this.pathToProcessLocalInfoJson, processConfig);
|
|
549
602
|
//#endregion
|
|
550
603
|
}
|