@mpis/run 0.0.18 → 0.0.20

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/lib/bin.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { functionToDisposable, humanDate, prettyPrintError, registerGlobalLifecycle } from '@idlebox/common';
2
2
  import { logger } from '@idlebox/logger';
3
3
  import { registerNodejsExitHandler, setExitCodeIfNot, shutdown } from '@idlebox/node';
4
+ import { terminal } from '@idlebox/terminal-control';
4
5
  import { channelClient } from '@mpis/client';
5
6
  import { ProcessIPCClient } from '@mpis/server';
6
7
  import assert from 'node:assert/strict';
@@ -31,6 +32,7 @@ switch (context.command) {
31
32
  break;
32
33
  }
33
34
  {
35
+ terminal.progress.indeterminate();
34
36
  if (context.withCleanup)
35
37
  executeClean();
36
38
  try {
@@ -49,6 +51,7 @@ switch (context.command) {
49
51
  dumpConfig(config);
50
52
  break;
51
53
  }
54
+ terminal.progress.indeterminate();
52
55
  initializeStdin();
53
56
  await executeBuild().catch((e) => {
54
57
  prettyPrintError(`failed ${context.command} project`, e);
package/lib/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/common/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,cAAc,EAAE,MAAM,cAAc,CAAC;AAK1E,eAAO,MAAM,cAAc,gBAA0E,CAAC;AAEtG,wBAAgB,iBAAiB,SAqChC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/common/manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,cAAc,EAAE,MAAM,cAAc,CAAC;AAK1E,eAAO,MAAM,cAAc,gBAA0E,CAAC;AAEtG,wBAAgB,iBAAiB,SA4ChC"}
@@ -3,7 +3,7 @@ import { channelClient } from '@mpis/client';
3
3
  import { ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
4
4
  import { context } from './args.js';
5
5
  import { config } from './config-file.js';
6
- import { errors, formatAllErrors, reprintWatchModeError } from './print-screen.js';
6
+ import { formatAllErrors, overallState, reprintWatchModeError, updateMiscState } from './print-screen.js';
7
7
  export const workersManager = new WorkersManager(context.watchMode ? ModeKind.Watch : ModeKind.Build);
8
8
  export function initializeWorkers() {
9
9
  let last;
@@ -22,14 +22,21 @@ export function initializeWorkers() {
22
22
  worker.displayTitle = `run:${cmds.command[0]}`;
23
23
  workersManager.addWorker(worker, last ? [last._id] : []);
24
24
  let nodeFirstTime = true;
25
+ worker.onStart(() => {
26
+ overallState.busyWorkers.add(worker._id);
27
+ overallState.startedWorkers.add(worker._id);
28
+ updateMiscState();
29
+ });
25
30
  worker.onFailure((e) => {
26
- errors.set(worker, e);
31
+ overallState.busyWorkers.delete(worker._id);
32
+ overallState.errors.set(worker._id, e);
27
33
  reprintWatchModeError(nodeFirstTime);
28
34
  nodeFirstTime = false;
29
35
  sendStatus();
30
36
  });
31
37
  worker.onSuccess(() => {
32
- errors.set(worker, null);
38
+ overallState.busyWorkers.delete(worker._id);
39
+ overallState.errors.delete(worker._id);
33
40
  if (nodeFirstTime) {
34
41
  nodeFirstTime = false;
35
42
  }
@@ -42,22 +49,14 @@ export function initializeWorkers() {
42
49
  }
43
50
  }
44
51
  function sendStatus() {
45
- const noError = errors.values().every((e) => !e);
46
- if (noError) {
47
- if (workersManager.size() === errors.size) {
52
+ if (overallState.errors.size === 0) {
53
+ if (workersManager.size() === overallState.startedWorkers.size) {
48
54
  channelClient.success(`all ${workersManager.size()} workers completed successfully.`);
49
- }
55
+ } // else not all started
50
56
  }
51
57
  else {
52
- let errorCnt = 0;
53
- const arr = [];
54
- for (const [client, err] of errors.entries()) {
55
- if (err) {
56
- errorCnt++;
57
- arr.push(client._id);
58
- }
59
- }
60
- channelClient.failed(`mpis-run: ${arr.join(', ')} (${errorCnt} / ${workersManager.size()})`, formatAllErrors());
58
+ const arr = overallState.errors.keys().toArray();
59
+ channelClient.failed(`mpis-run: ${arr.join(', ')} (${overallState.errors.size} / ${workersManager.size()})`, formatAllErrors());
61
60
  }
62
61
  }
63
62
  //# sourceMappingURL=manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/common/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/common/manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- import { type ProcessIPCClient } from '@mpis/server';
2
- export declare const errors: Map<ProcessIPCClient, Error | null>;
1
+ export declare const overallState: {
2
+ errors: Map<string, Error | null>;
3
+ busyWorkers: Set<string>;
4
+ startedWorkers: Set<string>;
5
+ };
6
+ export declare function updateMiscState(): void;
3
7
  export declare function reprintWatchModeError(noClear?: boolean): void;
4
8
  export declare function formatAllErrors(): string;
5
9
  //# sourceMappingURL=print-screen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"print-screen.d.ts","sourceRoot":"","sources":["../../src/common/print-screen.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMnE,eAAO,MAAM,MAAM,qCAA4C,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,OAAO,QAYtD;AAmBD,wBAAgB,eAAe,WAyB9B"}
1
+ {"version":3,"file":"print-screen.d.ts","sourceRoot":"","sources":["../../src/common/print-screen.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;;;;CAIxB,CAAC;AAWF,wBAAgB,eAAe,SAe9B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,OAAO,QAmBtD;AAmBD,wBAAgB,eAAe,WAyB9B"}
@@ -1,21 +1,52 @@
1
1
  import { humanDate, prettyFormatError, registerGlobalLifecycle, toDisposable } from '@idlebox/common';
2
2
  import { logger } from '@idlebox/logger';
3
+ import { terminal } from '@idlebox/terminal-control';
3
4
  import { CompileError } from '@mpis/server';
4
5
  import { context } from './args.js';
5
6
  import { workersManager } from './manager.js';
6
- let printTo;
7
+ let printTmr;
7
8
  const defaultNoClear = logger.debug.isEnabled || !process.stderr.isTTY;
8
- export const errors = new Map();
9
+ export const overallState = {
10
+ errors: new Map(),
11
+ busyWorkers: new Set(),
12
+ startedWorkers: new Set(),
13
+ };
14
+ let titleControl;
15
+ if (!defaultNoClear) {
16
+ registerGlobalLifecycle(terminal.title);
17
+ registerGlobalLifecycle(terminal.progress);
18
+ titleControl = terminal.title.addComponent();
19
+ terminal.title.addComponent().update(`run: ${process.env.npm_lifecycle_event || context.command}`);
20
+ }
21
+ export function updateMiscState() {
22
+ if (!titleControl)
23
+ return;
24
+ const firstBusyWorker = overallState.busyWorkers.keys().toArray().at(-1);
25
+ if (firstBusyWorker) {
26
+ terminal.progress.indeterminate();
27
+ titleControl.update(`⏳ ${firstBusyWorker}`);
28
+ }
29
+ else if (overallState.errors.size > 0) {
30
+ terminal.progress.error();
31
+ titleControl.update('💥');
32
+ }
33
+ else {
34
+ terminal.progress.clear();
35
+ titleControl.update('✅');
36
+ }
37
+ }
9
38
  export function reprintWatchModeError(noClear) {
10
- if (printTo)
11
- clearTimeout(printTo);
12
- printTo = setTimeout(() => {
13
- printTo = undefined;
39
+ if (printTmr)
40
+ clearTimeout(printTmr);
41
+ updateMiscState();
42
+ printTmr = setTimeout(() => {
43
+ printTmr = undefined;
44
+ const graph = workersManager.finalize();
14
45
  if (context.watchMode) {
15
- if (!noClear && !defaultNoClear)
16
- process.stderr.write('\x1Bc');
46
+ if (!noClear && !defaultNoClear) {
47
+ terminal.reset();
48
+ }
17
49
  }
18
- const graph = workersManager.finalize();
19
50
  console.error('%s\n%s', graph.debugFormatList(), graph.debugFormatSummary());
20
51
  printAllErrors();
21
52
  }, 50);
@@ -25,7 +56,7 @@ const start = Date.now();
25
56
  function printAllErrors() {
26
57
  execute_index++;
27
58
  const execTip = `exec: ${execute_index} / ${humanDate.delta(Date.now() - start)}`;
28
- const numFailed = [...errors.values().filter((e) => !!e)].length;
59
+ const numFailed = [...overallState.errors.values().filter((e) => !!e)].length;
29
60
  if (numFailed !== 0) {
30
61
  console.error(formatAllErrors());
31
62
  logger.error(`💥 ${numFailed} of ${workersManager.size()} worker failed (${execTip})`);
@@ -38,7 +69,7 @@ export function formatAllErrors() {
38
69
  const lines = [];
39
70
  const colorEnabled = logger.colorEnabled;
40
71
  let index = 0;
41
- for (const [worker, error] of errors) {
72
+ for (const [wId, error] of overallState.errors) {
42
73
  if (error === null)
43
74
  continue;
44
75
  index++;
@@ -47,7 +78,7 @@ export function formatAllErrors() {
47
78
  tag = ` (${error.name})`;
48
79
  }
49
80
  const banner = colorEnabled ? `\x1B[48;5;9m ERROR ${index} \x1B[0m` : `ERROR ${index}`;
50
- lines.push(`\n${banner}${tag} ${worker._id}`);
81
+ lines.push(`\n${banner}${tag} ${wId}`);
51
82
  if (error instanceof CompileError) {
52
83
  lines.push(error.toString());
53
84
  }
@@ -57,7 +88,7 @@ export function formatAllErrors() {
57
88
  else {
58
89
  lines.push(`can not handle error: ${error}`);
59
90
  }
60
- lines.push(`\n${banner} ${worker._id}`);
91
+ lines.push(`\n${banner} ${wId}`);
61
92
  }
62
93
  return lines.join('\n');
63
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"print-screen.js","sourceRoot":"","sources":["../../src/common/print-screen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"print-screen.js","sourceRoot":"","sources":["../../src/common/print-screen.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mpis/run",
3
3
  "type": "module",
4
- "version": "0.0.18",
4
+ "version": "0.0.20",
5
5
  "keywords": [],
6
6
  "bin": {
7
7
  "run": "./loader/bin.js",
@@ -12,19 +12,20 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "split-cmd": "^1.1.0",
15
- "@build-script/rushstack-config-loader": "^0.0.30",
16
- "@idlebox/args": "^0.0.21",
17
- "@idlebox/common": "^1.5.12",
18
- "@idlebox/logger": "^0.0.15",
19
- "@idlebox/node": "^1.4.21",
20
- "@mpis/client": "^0.0.15",
21
- "@mpis/server": "^0.0.14",
22
- "@idlebox/source-map-support": "^0.0.15"
15
+ "@build-script/rushstack-config-loader": "^0.0.31",
16
+ "@idlebox/args": "^0.0.24",
17
+ "@idlebox/common": "^1.5.15",
18
+ "@idlebox/logger": "^0.0.18",
19
+ "@idlebox/node": "^1.4.25",
20
+ "@mpis/client": "^0.0.17",
21
+ "@mpis/server": "^0.0.16",
22
+ "@idlebox/terminal-control": "^0.0.2",
23
+ "@idlebox/source-map-support": "^0.0.17"
23
24
  },
24
25
  "devDependencies": {
25
26
  "@types/node": "^25.0.8",
26
- "@build-script/baseline-rig": "latest",
27
- "@idlebox/esbuild-executer": "^0.0.11"
27
+ "@idlebox/esbuild-executer": "^0.0.12",
28
+ "@build-script/baseline-rig": "latest"
28
29
  },
29
30
  "sideEffects": false,
30
31
  "license": "MIT",
package/src/bin.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { functionToDisposable, humanDate, prettyPrintError, registerGlobalLifecycle } from '@idlebox/common';
2
2
  import { logger } from '@idlebox/logger';
3
3
  import { registerNodejsExitHandler, setExitCodeIfNot, shutdown } from '@idlebox/node';
4
+ import { terminal } from '@idlebox/terminal-control';
4
5
  import { channelClient } from '@mpis/client';
5
6
  import { ProcessIPCClient } from '@mpis/server';
6
7
  import assert from 'node:assert/strict';
@@ -36,6 +37,7 @@ switch (context.command) {
36
37
  break;
37
38
  }
38
39
  {
40
+ terminal.progress.indeterminate();
39
41
  if (context.withCleanup) executeClean();
40
42
 
41
43
  try {
@@ -54,6 +56,7 @@ switch (context.command) {
54
56
  dumpConfig(config);
55
57
  break;
56
58
  }
59
+ terminal.progress.indeterminate();
57
60
  initializeStdin();
58
61
  await executeBuild().catch((e: Error) => {
59
62
  prettyPrintError(`failed ${context.command} project`, e);
@@ -3,7 +3,7 @@ import { channelClient } from '@mpis/client';
3
3
  import { ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
4
4
  import { context } from './args.js';
5
5
  import { config } from './config-file.js';
6
- import { errors, formatAllErrors, reprintWatchModeError } from './print-screen.js';
6
+ import { formatAllErrors, overallState, reprintWatchModeError, updateMiscState } from './print-screen.js';
7
7
 
8
8
  export const workersManager = new WorkersManager(context.watchMode ? ModeKind.Watch : ModeKind.Build);
9
9
 
@@ -26,14 +26,21 @@ export function initializeWorkers() {
26
26
  workersManager.addWorker(worker, last ? [last._id] : []);
27
27
 
28
28
  let nodeFirstTime = true;
29
+ worker.onStart(() => {
30
+ overallState.busyWorkers.add(worker._id);
31
+ overallState.startedWorkers.add(worker._id);
32
+ updateMiscState();
33
+ });
29
34
  worker.onFailure((e) => {
30
- errors.set(worker, e);
35
+ overallState.busyWorkers.delete(worker._id);
36
+ overallState.errors.set(worker._id, e);
31
37
  reprintWatchModeError(nodeFirstTime);
32
38
  nodeFirstTime = false;
33
39
  sendStatus();
34
40
  });
35
41
  worker.onSuccess(() => {
36
- errors.set(worker, null);
42
+ overallState.busyWorkers.delete(worker._id);
43
+ overallState.errors.delete(worker._id);
37
44
  if (nodeFirstTime) {
38
45
  nodeFirstTime = false;
39
46
  } else {
@@ -47,20 +54,12 @@ export function initializeWorkers() {
47
54
  }
48
55
 
49
56
  function sendStatus() {
50
- const noError = errors.values().every((e) => !e);
51
- if (noError) {
52
- if (workersManager.size() === errors.size) {
57
+ if (overallState.errors.size === 0) {
58
+ if (workersManager.size() === overallState.startedWorkers.size) {
53
59
  channelClient.success(`all ${workersManager.size()} workers completed successfully.`);
54
- }
60
+ } // else not all started
55
61
  } else {
56
- let errorCnt = 0;
57
- const arr: string[] = [];
58
- for (const [client, err] of errors.entries()) {
59
- if (err) {
60
- errorCnt++;
61
- arr.push(client._id);
62
- }
63
- }
64
- channelClient.failed(`mpis-run: ${arr.join(', ')} (${errorCnt} / ${workersManager.size()})`, formatAllErrors());
62
+ const arr = overallState.errors.keys().toArray();
63
+ channelClient.failed(`mpis-run: ${arr.join(', ')} (${overallState.errors.size} / ${workersManager.size()})`, formatAllErrors());
65
64
  }
66
65
  }
@@ -1,22 +1,60 @@
1
1
  import { humanDate, prettyFormatError, registerGlobalLifecycle, toDisposable } from '@idlebox/common';
2
2
  import { logger } from '@idlebox/logger';
3
- import { CompileError, type ProcessIPCClient } from '@mpis/server';
3
+ import { terminal, type ITitleControl } from '@idlebox/terminal-control';
4
+ import { CompileError } from '@mpis/server';
4
5
  import { context } from './args.js';
5
6
  import { workersManager } from './manager.js';
6
7
 
7
- let printTo: NodeJS.Timeout | undefined;
8
+ let printTmr: NodeJS.Timeout | undefined;
8
9
  const defaultNoClear = logger.debug.isEnabled || !process.stderr.isTTY;
9
- export const errors = new Map<ProcessIPCClient, Error | null>();
10
+ export const overallState = {
11
+ errors: new Map<string, Error | null>(),
12
+ busyWorkers: new Set<string>(),
13
+ startedWorkers: new Set<string>(),
14
+ };
15
+
16
+ let titleControl: ITitleControl | undefined;
17
+ if (!defaultNoClear) {
18
+ registerGlobalLifecycle(terminal.title);
19
+ registerGlobalLifecycle(terminal.progress);
20
+
21
+ titleControl = terminal.title.addComponent();
22
+ terminal.title.addComponent().update(`run: ${process.env.npm_lifecycle_event || context.command}`);
23
+ }
24
+
25
+ export function updateMiscState() {
26
+ if (!titleControl) return;
27
+
28
+ const firstBusyWorker = overallState.busyWorkers.keys().toArray().at(-1);
29
+
30
+ if (firstBusyWorker) {
31
+ terminal.progress.indeterminate();
32
+ titleControl.update(`⏳ ${firstBusyWorker}`);
33
+ } else if (overallState.errors.size > 0) {
34
+ terminal.progress.error();
35
+ titleControl.update('💥');
36
+ } else {
37
+ terminal.progress.clear();
38
+ titleControl.update('✅');
39
+ }
40
+ }
10
41
 
11
42
  export function reprintWatchModeError(noClear?: boolean) {
12
- if (printTo) clearTimeout(printTo);
13
- printTo = setTimeout(() => {
14
- printTo = undefined;
43
+ if (printTmr) clearTimeout(printTmr);
44
+
45
+ updateMiscState();
46
+
47
+ printTmr = setTimeout(() => {
48
+ printTmr = undefined;
49
+
50
+ const graph = workersManager.finalize();
15
51
 
16
52
  if (context.watchMode) {
17
- if (!noClear && !defaultNoClear) process.stderr.write('\x1Bc');
53
+ if (!noClear && !defaultNoClear) {
54
+ terminal.reset();
55
+ }
18
56
  }
19
- const graph = workersManager.finalize();
57
+
20
58
  console.error('%s\n%s', graph.debugFormatList(), graph.debugFormatSummary());
21
59
  printAllErrors();
22
60
  }, 50);
@@ -29,7 +67,7 @@ function printAllErrors() {
29
67
  execute_index++;
30
68
  const execTip = `exec: ${execute_index} / ${humanDate.delta(Date.now() - start)}`;
31
69
 
32
- const numFailed = [...errors.values().filter((e) => !!e)].length;
70
+ const numFailed = [...overallState.errors.values().filter((e) => !!e)].length;
33
71
  if (numFailed !== 0) {
34
72
  console.error(formatAllErrors());
35
73
 
@@ -43,7 +81,7 @@ export function formatAllErrors() {
43
81
  const lines: string[] = [];
44
82
  const colorEnabled = logger.colorEnabled;
45
83
  let index = 0;
46
- for (const [worker, error] of errors) {
84
+ for (const [wId, error] of overallState.errors) {
47
85
  if (error === null) continue;
48
86
 
49
87
  index++;
@@ -53,7 +91,7 @@ export function formatAllErrors() {
53
91
  tag = ` (${error.name})`;
54
92
  }
55
93
  const banner = colorEnabled ? `\x1B[48;5;9m ERROR ${index} \x1B[0m` : `ERROR ${index}`;
56
- lines.push(`\n${banner}${tag} ${worker._id}`);
94
+ lines.push(`\n${banner}${tag} ${wId}`);
57
95
  if (error instanceof CompileError) {
58
96
  lines.push(error.toString());
59
97
  } else if (error instanceof Error) {
@@ -61,7 +99,7 @@ export function formatAllErrors() {
61
99
  } else {
62
100
  lines.push(`can not handle error: ${error}`);
63
101
  }
64
- lines.push(`\n${banner} ${worker._id}`);
102
+ lines.push(`\n${banner} ${wId}`);
65
103
  }
66
104
  return lines.join('\n');
67
105
  }