@mpis/monorepo 0.0.15 → 0.0.17

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.build.d.ts","sourceRoot":"","sources":["../../src/common/cmd.build.ts"],"names":[],"mappings":"AASA,wBAAsB,QAAQ,uBAsD7B"}
1
+ {"version":3,"file":"cmd.build.d.ts","sourceRoot":"","sources":["../../src/common/cmd.build.ts"],"names":[],"mappings":"AAUA,wBAAsB,QAAQ,uBAgD7B"}
@@ -1,7 +1,8 @@
1
1
  import { argv } from '@idlebox/args/default';
2
- import { prettyPrintError } from '@idlebox/common';
2
+ import { functionToDisposable, prettyPrintError, registerGlobalLifecycle } from '@idlebox/common';
3
3
  import { logger } from '@idlebox/logger';
4
4
  import { isShuttingDown, setExitCodeIfNot, shutdown } from '@idlebox/node';
5
+ import { terminal } from '@idlebox/terminal-control';
5
6
  import { CompileError } from '@mpis/server';
6
7
  import { url } from 'node:inspector';
7
8
  import { debugMode } from './args.js';
@@ -18,25 +19,16 @@ export async function runBuild() {
18
19
  repo.onStateChange(() => {
19
20
  if (isShuttingDown())
20
21
  return;
21
- if (process.stderr.isTTY)
22
- process.stderr.write('\x1Bc');
22
+ if (process.stderr.isTTY) {
23
+ terminal.erase.all(true);
24
+ terminal.progress.update(repo.getProgress());
25
+ }
23
26
  repo.printScreen();
24
27
  });
25
28
  }
26
- // let completed = false;
27
- // registerGlobalLifecycle(
28
- // toDisposable(() => {
29
- // if (debugMode || hasCi) {
30
- // repo.printScreen();
31
- // } else {
32
- // if (process.stderr.isTTY) process.stderr.write('\x1Bc');
33
- // repo.printScreen();
34
- // }
35
- // if (!completed && !process.exitCode) {
36
- // process.exitCode = 1;
37
- // }
38
- // }),
39
- // );
29
+ registerGlobalLifecycle(functionToDisposable(() => {
30
+ terminal.progress.clear();
31
+ }));
40
32
  try {
41
33
  await repo.startup();
42
34
  logger.success('Monorepo started successfully');
@@ -45,7 +37,7 @@ export async function runBuild() {
45
37
  }
46
38
  catch (error) {
47
39
  if (activeOutput) {
48
- process.stderr.write('\x1Bc');
40
+ terminal.reset();
49
41
  }
50
42
  else {
51
43
  console.error('='.repeat(process.stderr.columns || 80));
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.build.js","sourceRoot":"","sources":["../../src/common/cmd.build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAA,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAE1C,IAAI,YAAY,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;YACvB,IAAI,cAAc,EAAE;gBAAE,OAAO;YAC7B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,2BAA2B;IAC3B,wBAAwB;IACxB,8BAA8B;IAC9B,yBAAyB;IACzB,aAAa;IACb,8DAA8D;IAC9D,yBAAyB;IACzB,MAAM;IACN,2CAA2C;IAC3C,2BAA2B;IAC3B,MAAM;IACN,OAAO;IACP,KAAK;IAEL,IAAI,CAAC;QACJ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAChD,oBAAoB;QACpB,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACrB,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAA,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,QAAQ,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"cmd.build.js","sourceRoot":"","sources":["../../src/common/cmd.build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAA,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;IACpD,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAE1C,IAAI,YAAY,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;YACvB,IAAI,cAAc,EAAE;gBAAE,OAAO;YAC7B,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC1B,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,uBAAuB,CACtB,oBAAoB,CAAC,GAAG,EAAE;QACzB,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC,CACF,CAAC;IAEF,IAAI,CAAC;QACJ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAChD,oBAAoB;QACpB,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACrB,IAAI,YAAY,EAAE,CAAC;YAClB,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;YAC9D,MAAM,CAAC,KAAK,CAAA,SAAS,KAAK,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACP,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,QAAQ,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.watch.d.ts","sourceRoot":"","sources":["../../src/common/cmd.watch.ts"],"names":[],"mappings":"AAQA,wBAAsB,QAAQ,uBAiD7B"}
1
+ {"version":3,"file":"cmd.watch.d.ts","sourceRoot":"","sources":["../../src/common/cmd.watch.ts"],"names":[],"mappings":"AAkBA,wBAAsB,QAAQ,uBAwE7B"}
@@ -2,9 +2,18 @@ import { argv } from '@idlebox/args/default';
2
2
  import { InterruptError, prettyPrintError, registerGlobalLifecycle } from '@idlebox/common';
3
3
  import { logger } from '@idlebox/logger';
4
4
  import { registerNodejsGlobalTypedErrorHandlerWithInheritance, shutdown } from '@idlebox/node';
5
+ import { terminal } from '@idlebox/terminal-control';
5
6
  import { debugMode } from './args.js';
6
7
  import { startUi } from './user-interactive.js';
7
8
  import { createMonorepoObject } from './workspace.js';
9
+ let titleControl;
10
+ function setTitle(title) {
11
+ if (!titleControl) {
12
+ titleControl = terminal.title.addComponent();
13
+ registerGlobalLifecycle(terminal.title);
14
+ }
15
+ titleControl.update(title);
16
+ }
8
17
  export async function runWatch() {
9
18
  if (argv.unused().length) {
10
19
  logger.error `Unknown arguments: ${argv.unused().join(', ')}`;
@@ -12,7 +21,7 @@ export async function runWatch() {
12
21
  }
13
22
  let statePrinterDisposable;
14
23
  const repo = await createMonorepoObject();
15
- const cls = process.stderr.isTTY && !debugMode;
24
+ const term = process.stderr.isTTY && !debugMode;
16
25
  registerGlobalLifecycle(repo);
17
26
  startUi(repo);
18
27
  registerNodejsGlobalTypedErrorHandlerWithInheritance(InterruptError, () => {
@@ -21,34 +30,56 @@ export async function runWatch() {
21
30
  shutdown(0);
22
31
  });
23
32
  process.on('SIGPIPE', () => {
24
- if (cls)
25
- process.stderr.write('\x1Bc');
33
+ if (term) {
34
+ terminal.erase.all(true);
35
+ }
26
36
  logger.info `SIGPIPE received, printing current state...`;
27
37
  repo.printScreen();
28
38
  });
29
39
  if (!debugMode) {
30
40
  statePrinterDisposable = repo.onStateChange(() => {
31
- if (cls && !repo.hasDisposed)
32
- process.stderr.write('\x1Bc');
41
+ if (!repo.disposed && term) {
42
+ terminal.reset();
43
+ const p = repo.getProgress();
44
+ if (repo.hasWorkerNotComplete()) {
45
+ setTitle('⌛处理中');
46
+ terminal.progress.update(p);
47
+ }
48
+ else {
49
+ if (repo.hasWorkerFailed()) {
50
+ terminal.progress.error(p);
51
+ setTitle('❌监视');
52
+ }
53
+ else {
54
+ terminal.progress.clear();
55
+ setTitle('✅监视');
56
+ }
57
+ }
58
+ }
33
59
  logger.info `State changed, printing current state...`;
34
60
  repo.printScreen(true);
35
61
  });
62
+ registerGlobalLifecycle(terminal.progress);
36
63
  }
37
64
  try {
65
+ if (term)
66
+ setTitle('启动');
38
67
  await repo.startup();
39
68
  }
40
69
  catch (e) {
41
70
  if (debugMode) {
42
- if (cls && !repo.hasDisposed)
43
- process.stderr.write('\x1Bc');
71
+ if (!repo.disposed && term) {
72
+ terminal.reset();
73
+ }
44
74
  repo.printScreen();
45
75
  }
46
76
  prettyPrintError('监视模式下有进程退出', e);
47
77
  shutdown(1);
48
78
  }
49
- if (cls && !repo.hasDisposed)
50
- process.stderr.write('\x1Bc');
79
+ if (!repo.disposed && term) {
80
+ setTitle('监视');
81
+ terminal.reset();
82
+ }
51
83
  repo.printScreen();
52
- // logger.fatal`watch mode exited`;
53
84
  }
54
85
  //# sourceMappingURL=cmd.watch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cmd.watch.js","sourceRoot":"","sources":["../../src/common/cmd.watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAoB,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,oDAAoD,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAA,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,sBAAmC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC;IAE/C,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEd,oDAAoD,CAAC,cAAc,EAAE,GAAG,EAAE;QACzE,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClC,sBAAsB,EAAE,OAAO,EAAE,CAAC;QAClC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QAC1B,IAAI,GAAG;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAA,6CAA6C,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE;YAChD,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAA,0CAA0C,CAAC;YACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QACjB,IAAI,SAAS,EAAE,CAAC;YACf,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC;QACD,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAClC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;IAEnB,mCAAmC;AACpC,CAAC"}
1
+ {"version":3,"file":"cmd.watch.js","sourceRoot":"","sources":["../../src/common/cmd.watch.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { type MonorepoWorkspace } from '@build-script/monorepo-lib';
2
- import { AsyncDisposable } from '@idlebox/common';
2
+ import { EnhancedAsyncDisposable } from '@idlebox/common';
3
3
  import { type IMyLogger } from '@idlebox/logger';
4
4
  export declare function createMonorepoObject(): Promise<PnpmMonoRepo>;
5
5
  export type IPnpmMonoRepo = PnpmMonoRepo;
6
- declare class PnpmMonoRepo extends AsyncDisposable {
6
+ declare class PnpmMonoRepo extends EnhancedAsyncDisposable {
7
7
  readonly logger: IMyLogger;
8
8
  protected readonly workspace: MonorepoWorkspace;
9
9
  private readonly workersManager;
@@ -19,9 +19,12 @@ declare class PnpmMonoRepo extends AsyncDisposable {
19
19
  _finalize(): Promise<void>;
20
20
  startup(): Promise<void>;
21
21
  private makeExecuter;
22
+ hasWorkerFailed(): boolean;
23
+ hasWorkerNotComplete(): boolean;
22
24
  formatErrors(): string;
23
25
  private getRig;
24
26
  private forkPath;
27
+ getProgress(includeFailed?: boolean): number;
25
28
  dump(depth?: number, short?: boolean): string;
26
29
  printScreen(short?: boolean, listAbove?: boolean): void;
27
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/common/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAE,eAAe,EAAgD,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ9D,wBAAsB,oBAAoB,0BAMzC;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAKzC,cAAM,YAAa,SAAQ,eAAe;aAaxB,MAAM,EAAE,SAAS;IACjC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB;IAbhD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IAEjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuC;IACtE,SAAgB,aAAa,gDAA6B;IAE1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;gBAG5D,MAAM,EAAE,SAAS,EACd,SAAS,EAAE,iBAAiB;IAe1C,UAAU;IAiBV,SAAS;IAIT,OAAO;IAOb,OAAO,CAAC,YAAY;IA6DpB,YAAY;IAiCZ,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,QAAQ;IAiBhB,IAAI,CAAC,KAAK,GAAE,MAAU,EAAE,KAAK,UAAQ;IAuBrC,WAAW,CAAC,KAAK,UAAQ,EAAE,SAAS,UAAQ;CAS5C"}
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/common/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAA0B,uBAAuB,EAAwB,MAAM,iBAAiB,CAAC;AACxG,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ9D,wBAAsB,oBAAoB,0BAMzC;AAED,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAKzC,cAAM,YAAa,SAAQ,uBAAuB;aAahC,MAAM,EAAE,SAAS;IACjC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,iBAAiB;IAbhD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IAEjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuC;IACtE,SAAgB,aAAa,gDAA6B;IAE1D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6C;gBAG5D,MAAM,EAAE,SAAS,EACd,SAAS,EAAE,iBAAiB;IAe1C,UAAU;IAiBV,SAAS;IAIT,OAAO;IAOb,OAAO,CAAC,YAAY;IA6DpB,eAAe;IAIf,oBAAoB;IAOpB,YAAY;IAiCZ,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,QAAQ;IAiBhB,WAAW,CAAC,aAAa,UAAO;IAYhC,IAAI,CAAC,KAAK,GAAE,MAAU,EAAE,KAAK,UAAQ;IAuBrC,WAAW,CAAC,KAAK,UAAQ,EAAE,SAAS,UAAQ;CAS5C"}
@@ -1,8 +1,8 @@
1
1
  import { createWorkspace } from '@build-script/monorepo-lib';
2
- import { AsyncDisposable, DisposedError, Emitter, isWindows, PathArray } from '@idlebox/common';
2
+ import { DisposedError, Emitter, EnhancedAsyncDisposable, isWindows, PathArray } from '@idlebox/common';
3
3
  import { CSI, logger } from '@idlebox/logger';
4
4
  import { getEnvironment, workingDirectory } from '@idlebox/node';
5
- import { CompileError, ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
5
+ import { CompileError, ModeKind, ProcessIPCClient, WorkerClientState, WorkersManager } from '@mpis/server';
6
6
  import { RigConfig } from '@rushstack/rig-package';
7
7
  import { dirname, resolve } from 'node:path';
8
8
  import { split as splitCmd } from 'split-cmd';
@@ -17,7 +17,7 @@ export async function createMonorepoObject() {
17
17
  const colorReg = /\x1B\[[0-9;]+?m/g;
18
18
  const unclosedColorReg = /\x1B\[[^m]*$/g;
19
19
  const firstEmptyLine = /^\s*\n/;
20
- class PnpmMonoRepo extends AsyncDisposable {
20
+ class PnpmMonoRepo extends EnhancedAsyncDisposable {
21
21
  logger;
22
22
  workspace;
23
23
  workersManager;
@@ -122,6 +122,15 @@ class PnpmMonoRepo extends AsyncDisposable {
122
122
  this.packageToWorker.set(project, exec);
123
123
  return exec;
124
124
  }
125
+ hasWorkerFailed() {
126
+ return this.packageToWorker.values().some((item) => !item.isSuccess);
127
+ }
128
+ hasWorkerNotComplete() {
129
+ return this.packageToWorker.values().some((item) => {
130
+ const state = item.state;
131
+ return state !== WorkerClientState.COMPILE_SUCCEED && state !== WorkerClientState.COMPILE_FAILED;
132
+ });
133
+ }
125
134
  formatErrors() {
126
135
  if (this.errorMessages.size === 0)
127
136
  return '';
@@ -174,6 +183,17 @@ class PnpmMonoRepo extends AsyncDisposable {
174
183
  pathvar.add(resolve(info.absolute, 'node_modules/.bin'), true, true);
175
184
  return pathvar;
176
185
  }
186
+ getProgress(includeFailed = true) {
187
+ const count = this.packageToWorker.size;
188
+ const completed = this.packageToWorker
189
+ .values()
190
+ .filter((item) => {
191
+ const state = item.state;
192
+ return state === WorkerClientState.COMPILE_SUCCEED || (includeFailed && state === WorkerClientState.COMPILE_FAILED);
193
+ })
194
+ .toArray().length;
195
+ return Math.floor((100 * completed) / count);
196
+ }
177
197
  dump(depth = 0, short = false) {
178
198
  const graph = this.workersManager.finalize();
179
199
  let graphTxt;
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/common/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/common/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA6C,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAkB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAmB,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACzC,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAA,mBAAmB,SAAS,CAAC,IAAI,GAAG,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACxB,OAAO,IAAI,CAAC;AACb,CAAC;AAGD,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AACpC,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAEzC,MAAM,cAAc,GAAG,QAAQ,CAAC;AAChC,MAAM,YAAa,SAAQ,uBAAuB;IAahC;IACG;IAbH,cAAc,CAAiB;IAC/B,OAAO,CAAY;IACnB,aAAa,GAAG,IAAI,GAAG,EAAwB,CAAC;IAChD,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC,CAAC,YAAY;IAE7D,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,OAAO,EAAQ,CAAC,CAAC;IACtD,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAEzC,IAAI,CAAW;IACf,eAAe,GAAG,IAAI,GAAG,EAAkC,CAAC;IAE7E,YACiB,MAAiB,EACd,SAA4B;QAE/C,KAAK,CAAC,cAAc,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAW;QACd,cAAS,GAAT,SAAS,CAAmB;QAI/C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;QAClE,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,GAAG,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU;QACf,MAAM,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,CAAA,cAAc,QAAQ,CAAC,MAAM,YAAY,CAAC;QACtD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI;gBAAE,SAAS;YAExC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACtE,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;gBACxF,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,SAAS;QACd,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC7C,eAAe;QACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,YAAY,CAAC,SAAkB,EAAE,OAAqB;QAC7D,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA,WAAW,OAAO,CAAC,WAAW,CAAC,IAAI,8EAA8E,CAAC;QACpI,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA,WAAW,OAAO,CAAC,WAAW,CAAC,IAAI,8EAA8E,CAAC;QACpI,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;QAEjG,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA,iBAAiB,OAAO,CAAC,WAAW,CAAC,IAAI,wBAAwB,CAAC;YACrF,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA,WAAW,OAAO,CAAC,WAAW,CAAC,IAAI,YAAY,MAAM,eAAe,CAAC;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAErE,MAAM,IAAI,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB;QACvH,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YACpB,IAAI,CAAC,YAAY,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,IAAI,wBAAwB,EAAE,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC;gBACJ,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,aAAa,EAAE,CAAC;oBAChC,+BAA+B;oBAC/B,OAAO;gBACR,CAAC;gBACD,MAAM,CAAC,CAAC;YACT,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,oBAAoB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,OAAO,KAAK,KAAK,iBAAiB,CAAC,eAAe,IAAI,KAAK,KAAK,iBAAiB,CAAC,cAAc,CAAC;QAClG,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,YAAY;QACX,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAE5C,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,KAAK,GAAG,SAAS,CAAC;QAExB,SAAS,SAAS,CAAC,GAAW;YAC7B,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACzD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBACrB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACzE,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,KAAK,GAAG,GAAG,IAAI,QAAQ,GAAG,KAAK,KAAK,MAAM,GAAG,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;QAChH,CAAC;QAED,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACzD,oEAAoE;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CAAC,+CAA+C,GAAG,WAAW,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,KAAK,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7J,MAAM,IAAI,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,IAAI,SAAS,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC;YAClH,MAAM,IAAI,SAAS,CAAC,6CAA6C,GAAG,WAAW,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,KAAK,KAAK,GAAG,CAAC,CAAC;QAC7H,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,OAAqB;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC;QACf,CAAC;QAED,MAAM,GAAG,GAAG,SAAS,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC;IACZ,CAAC;IAEO,QAAQ,CAAC,IAAkB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAErC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,EAAE,yBAAyB,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA,qCAAqC,MAAM,GAAG,CAAC;QACjE,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA,iCAAiC,CAAC;QACpD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAErE,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,aAAa,GAAG,IAAI;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe;aACpC,MAAM,EAAE;aACR,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,OAAO,KAAK,KAAK,iBAAiB,CAAC,eAAe,IAAI,CAAC,aAAa,IAAI,KAAK,KAAK,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACrH,CAAC,CAAC;aACD,OAAO,EAAE,CAAC,MAAM,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC,QAAgB,CAAC,EAAE,KAAK,GAAG,KAAK;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,QAAgB,CAAC;QACrB,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAChB,IAAI,KAAK,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,EAAE,CAAC;gBAClB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;wBACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;oBACnC,CAAC;gBACF,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBACxC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACP,QAAQ,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;YACpC,CAAC;QACF,CAAC;aAAM,CAAC;YACP,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,GAAG,QAAQ,KAAK,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC;IACrD,CAAC;IAED,WAAW,CAAC,KAAK,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK;QAC3C,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,IAAI,SAAS,EAAE,CAAC;YACf,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;CACD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mpis/monorepo",
3
3
  "type": "module",
4
- "version": "0.0.15",
4
+ "version": "0.0.17",
5
5
  "keywords": [],
6
6
  "bin": {
7
7
  "build-manager": "./loader/bin.js"
@@ -12,29 +12,33 @@
12
12
  "dependencies": {
13
13
  "@rushstack/rig-package": "^0.6.0",
14
14
  "split-cmd": "^1.1.0",
15
- "@idlebox/args": "^0.0.22",
16
- "@build-script/monorepo-lib": "^0.0.17",
17
- "@idlebox/logger": "^0.0.16",
18
- "@idlebox/node": "^1.4.22",
19
- "@idlebox/common": "^1.5.13",
20
- "@mpis/server": "^0.0.15",
21
- "@idlebox/source-map-support": "^0.0.16"
15
+ "@build-script/monorepo-lib": "^0.0.20",
16
+ "@idlebox/args": "^0.0.25",
17
+ "@idlebox/common": "^1.5.16",
18
+ "@idlebox/logger": "^0.0.19",
19
+ "@idlebox/node": "^1.4.26",
20
+ "@mpis/server": "^0.0.17",
21
+ "@idlebox/source-map-support": "^0.0.18",
22
+ "@idlebox/terminal-control": "^0.0.2"
22
23
  },
23
24
  "devDependencies": {
24
25
  "@types/node": "^25.0.8",
25
- "@idlebox/esbuild-executer": "^0.0.12",
26
26
  "@build-script/baseline-rig": "latest",
27
- "@mpis/run": "^0.0.17",
28
- "@mpis/typescript": "^0.0.18"
27
+ "@idlebox/esbuild-executer": "^0.0.13",
28
+ "@mpis/typescript": "^0.0.19",
29
+ "@mpis/run": "^0.0.20"
29
30
  },
30
31
  "sideEffects": false,
31
32
  "license": "MIT",
32
33
  "author": "GongT <admin@gongt.me>",
33
- "repository": "https://github.com/GongT/baobao",
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "https://github.com/GongT/baobao",
37
+ "directory": "@mpis/monorepo"
38
+ },
34
39
  "scripts": {
35
40
  "build": "mpis-run build",
36
41
  "watch": "mpis-run watch",
37
- "clean": "mpis-run clean",
38
- "lint": "internal-lint"
42
+ "clean": "mpis-run clean"
39
43
  }
40
44
  }
@@ -1,7 +1,8 @@
1
1
  import { argv } from '@idlebox/args/default';
2
- import { prettyPrintError } from '@idlebox/common';
2
+ import { functionToDisposable, prettyPrintError, registerGlobalLifecycle } from '@idlebox/common';
3
3
  import { logger } from '@idlebox/logger';
4
4
  import { isShuttingDown, setExitCodeIfNot, shutdown } from '@idlebox/node';
5
+ import { terminal } from '@idlebox/terminal-control';
5
6
  import { CompileError } from '@mpis/server';
6
7
  import { url } from 'node:inspector';
7
8
  import { debugMode } from './args.js';
@@ -20,25 +21,19 @@ export async function runBuild() {
20
21
  if (activeOutput) {
21
22
  repo.onStateChange(() => {
22
23
  if (isShuttingDown()) return;
23
- if (process.stderr.isTTY) process.stderr.write('\x1Bc');
24
+ if (process.stderr.isTTY) {
25
+ terminal.erase.all(true);
26
+ terminal.progress.update(repo.getProgress());
27
+ }
24
28
  repo.printScreen();
25
29
  });
26
30
  }
27
31
 
28
- // let completed = false;
29
- // registerGlobalLifecycle(
30
- // toDisposable(() => {
31
- // if (debugMode || hasCi) {
32
- // repo.printScreen();
33
- // } else {
34
- // if (process.stderr.isTTY) process.stderr.write('\x1Bc');
35
- // repo.printScreen();
36
- // }
37
- // if (!completed && !process.exitCode) {
38
- // process.exitCode = 1;
39
- // }
40
- // }),
41
- // );
32
+ registerGlobalLifecycle(
33
+ functionToDisposable(() => {
34
+ terminal.progress.clear();
35
+ }),
36
+ );
42
37
 
43
38
  try {
44
39
  await repo.startup();
@@ -48,7 +43,7 @@ export async function runBuild() {
48
43
  setExitCodeIfNot(0);
49
44
  } catch (error: any) {
50
45
  if (activeOutput) {
51
- process.stderr.write('\x1Bc');
46
+ terminal.reset();
52
47
  } else {
53
48
  console.error('='.repeat(process.stderr.columns || 80));
54
49
  }
@@ -2,19 +2,29 @@ import { argv } from '@idlebox/args/default';
2
2
  import { InterruptError, prettyPrintError, registerGlobalLifecycle, type IDisposable } from '@idlebox/common';
3
3
  import { logger } from '@idlebox/logger';
4
4
  import { registerNodejsGlobalTypedErrorHandlerWithInheritance, shutdown } from '@idlebox/node';
5
+ import { terminal, type ITitleControl } from '@idlebox/terminal-control';
5
6
  import { debugMode } from './args.js';
6
7
  import { startUi } from './user-interactive.js';
7
8
  import { createMonorepoObject } from './workspace.js';
8
9
 
10
+ let titleControl: ITitleControl | undefined;
11
+ function setTitle(title: string) {
12
+ if (!titleControl) {
13
+ titleControl = terminal.title.addComponent();
14
+ registerGlobalLifecycle(terminal.title);
15
+ }
16
+ titleControl.update(title);
17
+ }
18
+
9
19
  export async function runWatch() {
10
20
  if (argv.unused().length) {
11
21
  logger.error`Unknown arguments: ${argv.unused().join(', ')}`;
12
22
  return shutdown(1);
13
23
  }
14
24
 
15
- let statePrinterDisposable: IDisposable;
25
+ let statePrinterDisposable: IDisposable | undefined;
16
26
  const repo = await createMonorepoObject();
17
- const cls = process.stderr.isTTY && !debugMode;
27
+ const term = process.stderr.isTTY && !debugMode;
18
28
 
19
29
  registerGlobalLifecycle(repo);
20
30
 
@@ -27,32 +37,55 @@ export async function runWatch() {
27
37
  });
28
38
 
29
39
  process.on('SIGPIPE', () => {
30
- if (cls) process.stderr.write('\x1Bc');
40
+ if (term) {
41
+ terminal.erase.all(true);
42
+ }
31
43
  logger.info`SIGPIPE received, printing current state...`;
32
44
  repo.printScreen();
33
45
  });
34
46
 
35
47
  if (!debugMode) {
36
48
  statePrinterDisposable = repo.onStateChange(() => {
37
- if (cls && !repo.hasDisposed) process.stderr.write('\x1Bc');
49
+ if (!repo.disposed && term) {
50
+ terminal.reset();
51
+ const p = repo.getProgress();
52
+ if (repo.hasWorkerNotComplete()) {
53
+ setTitle('⌛处理中');
54
+ terminal.progress.update(p);
55
+ } else {
56
+ if (repo.hasWorkerFailed()) {
57
+ terminal.progress.error(p);
58
+ setTitle('❌监视');
59
+ } else {
60
+ terminal.progress.clear();
61
+ setTitle('✅监视');
62
+ }
63
+ }
64
+ }
38
65
  logger.info`State changed, printing current state...`;
39
66
  repo.printScreen(true);
40
67
  });
68
+
69
+ registerGlobalLifecycle(terminal.progress);
41
70
  }
42
71
 
43
72
  try {
73
+ if (term) setTitle('启动');
44
74
  await repo.startup();
45
75
  } catch (e: any) {
46
76
  if (debugMode) {
47
- if (cls && !repo.hasDisposed) process.stderr.write('\x1Bc');
77
+ if (!repo.disposed && term) {
78
+ terminal.reset();
79
+ }
48
80
  repo.printScreen();
49
81
  }
50
82
  prettyPrintError('监视模式下有进程退出', e);
51
83
  shutdown(1);
52
84
  }
53
85
 
54
- if (cls && !repo.hasDisposed) process.stderr.write('\x1Bc');
86
+ if (!repo.disposed && term) {
87
+ setTitle('监视');
88
+ terminal.reset();
89
+ }
55
90
  repo.printScreen();
56
-
57
- // logger.fatal`watch mode exited`;
58
91
  }
@@ -1,8 +1,8 @@
1
1
  import { createWorkspace, type IPackageInfo, type MonorepoWorkspace } from '@build-script/monorepo-lib';
2
- import { AsyncDisposable, DisposedError, Emitter, isWindows, PathArray } from '@idlebox/common';
2
+ import { DisposedError, Emitter, EnhancedAsyncDisposable, isWindows, PathArray } from '@idlebox/common';
3
3
  import { CSI, logger, type IMyLogger } from '@idlebox/logger';
4
4
  import { getEnvironment, workingDirectory } from '@idlebox/node';
5
- import { CompileError, ModeKind, ProcessIPCClient, WorkersManager } from '@mpis/server';
5
+ import { CompileError, ModeKind, ProcessIPCClient, WorkerClientState, WorkersManager } from '@mpis/server';
6
6
  import { RigConfig, type IRigConfig } from '@rushstack/rig-package';
7
7
  import { dirname, resolve } from 'node:path';
8
8
  import { split as splitCmd } from 'split-cmd';
@@ -21,7 +21,7 @@ const colorReg = /\x1B\[[0-9;]+?m/g;
21
21
  const unclosedColorReg = /\x1B\[[^m]*$/g;
22
22
 
23
23
  const firstEmptyLine = /^\s*\n/;
24
- class PnpmMonoRepo extends AsyncDisposable {
24
+ class PnpmMonoRepo extends EnhancedAsyncDisposable {
25
25
  private readonly workersManager: WorkersManager;
26
26
  private readonly pathvar: PathArray;
27
27
  private readonly errorMessages = new Map<IPackageInfo, string>();
@@ -139,6 +139,17 @@ class PnpmMonoRepo extends AsyncDisposable {
139
139
  return exec;
140
140
  }
141
141
 
142
+ hasWorkerFailed() {
143
+ return this.packageToWorker.values().some((item) => !item.isSuccess);
144
+ }
145
+
146
+ hasWorkerNotComplete() {
147
+ return this.packageToWorker.values().some((item) => {
148
+ const state = item.state;
149
+ return state !== WorkerClientState.COMPILE_SUCCEED && state !== WorkerClientState.COMPILE_FAILED;
150
+ });
151
+ }
152
+
142
153
  formatErrors() {
143
154
  if (this.errorMessages.size === 0) return '';
144
155
  let output = '';
@@ -200,6 +211,18 @@ class PnpmMonoRepo extends AsyncDisposable {
200
211
  return pathvar;
201
212
  }
202
213
 
214
+ getProgress(includeFailed = true) {
215
+ const count = this.packageToWorker.size;
216
+ const completed = this.packageToWorker
217
+ .values()
218
+ .filter((item) => {
219
+ const state = item.state;
220
+ return state === WorkerClientState.COMPILE_SUCCEED || (includeFailed && state === WorkerClientState.COMPILE_FAILED);
221
+ })
222
+ .toArray().length;
223
+ return Math.floor((100 * completed) / count);
224
+ }
225
+
203
226
  dump(depth: number = 0, short = false) {
204
227
  const graph = this.workersManager.finalize();
205
228
  let graphTxt: string;