@rushstack/rush-sdk 5.112.2-pr4485.1 → 5.112.2-pr4485.3

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.
@@ -1155,6 +1155,12 @@ export declare interface ICreateOperationsContext {
1155
1155
  * The Rush configuration
1156
1156
  */
1157
1157
  readonly rushConfiguration: RushConfiguration;
1158
+ /**
1159
+ * Marks an operation's result as invalid, potentially triggering a new build. Only applicable in watch mode.
1160
+ * @param operation - The operation to invalidate
1161
+ * @param reason - The reason for invalidating the operation
1162
+ */
1163
+ readonly invalidateOperation?: ((operation: Operation, reason: string) => void) | undefined;
1158
1164
  }
1159
1165
 
1160
1166
  /**
@@ -1333,6 +1339,12 @@ export declare interface IExperimentsJson {
1333
1339
  * If true, Rush will not allow node_modules in the repo folder or in parent folders.
1334
1340
  */
1335
1341
  forbidPhantomResolvableNodeModulesFolders?: boolean;
1342
+ /**
1343
+ * If true, when running in watch mode, Rush will check for phase scripts named `_phase:<name>:ipc` and run them instead
1344
+ * of `_phase:<name>` if they exist. The created child process will be provided with an IPC channel and expected to persist
1345
+ * across invocations.
1346
+ */
1347
+ useIPCScriptsInWatchMode?: boolean;
1336
1348
  }
1337
1349
 
1338
1350
  /**
@@ -1661,10 +1673,6 @@ export declare interface IOperationRunnerContext {
1661
1673
  * Defaults to `true`. Will be `false` if Rush was invoked with `--verbose`.
1662
1674
  */
1663
1675
  quietMode: boolean;
1664
- /**
1665
- * Object used to report a summary at the end of the Rush invocation.
1666
- */
1667
- stdioSummarizer: StdioSummarizer;
1668
1676
  /**
1669
1677
  * Object used to manage metadata of the operation.
1670
1678
  *
@@ -1687,13 +1695,6 @@ export declare interface IOperationRunnerContext {
1687
1695
  * it later (for example to re-print errors at end of execution).
1688
1696
  */
1689
1697
  error?: Error;
1690
- /**
1691
- * Normally the incremental build logic will rebuild changed projects as well as
1692
- * any projects that directly or indirectly depend on a changed project.
1693
- * If true, then the incremental build logic will only rebuild changed projects and
1694
- * ignore dependent projects.
1695
- */
1696
- readonly changedProjectsOnly: boolean;
1697
1698
  /**
1698
1699
  * Invokes the specified callback with a terminal that is associated with this operation.
1699
1700
  *
@@ -1748,13 +1749,6 @@ export declare interface IOperationSettings {
1748
1749
  * calculating final hash value when reading and writing the build cache
1749
1750
  */
1750
1751
  dependsOnAdditionalFiles?: string[];
1751
- /**
1752
- * When running this operation in watch mode, enable IPC functionality. This allows reusing a long-lived child
1753
- * process instead of spawning a new child process for each incremental build.
1754
- *
1755
- * Implicitly disables the build cache for this operation.
1756
- */
1757
- useIPCInWatchMode?: boolean;
1758
1752
  }
1759
1753
 
1760
1754
  /**
@@ -2873,6 +2867,10 @@ export declare class PhasedCommandHooks {
2873
2867
  readonly afterExecuteOperation: AsyncSeriesHook<[
2874
2868
  IOperationRunnerContext & IOperationExecutionResult
2875
2869
  ]>;
2870
+ /**
2871
+ * Hook invoked to shutdown long-lived work in plugins.
2872
+ */
2873
+ readonly shutdown: SyncHook<void>;
2876
2874
  /**
2877
2875
  * Hook invoked after a run has finished and the command is watching for changes.
2878
2876
  * May be used to display additional relevant data to the user.
@@ -59,6 +59,12 @@ export interface IExperimentsJson {
59
59
  * If true, Rush will not allow node_modules in the repo folder or in parent folders.
60
60
  */
61
61
  forbidPhantomResolvableNodeModulesFolders?: boolean;
62
+ /**
63
+ * If true, when running in watch mode, Rush will check for phase scripts named `_phase:<name>:ipc` and run them instead
64
+ * of `_phase:<name>` if they exist. The created child process will be provided with an IPC channel and expected to persist
65
+ * across invocations.
66
+ */
67
+ useIPCScriptsInWatchMode?: boolean;
62
68
  }
63
69
  /**
64
70
  * Use this class to load the "common/config/rush/experiments.json" config file.
@@ -73,13 +73,6 @@ export interface IOperationSettings {
73
73
  * calculating final hash value when reading and writing the build cache
74
74
  */
75
75
  dependsOnAdditionalFiles?: string[];
76
- /**
77
- * When running this operation in watch mode, enable IPC functionality. This allows reusing a long-lived child
78
- * process instead of spawning a new child process for each incremental build.
79
- *
80
- * Implicitly disables the build cache for this operation.
81
- */
82
- useIPCInWatchMode?: boolean;
83
76
  }
84
77
  /**
85
78
  * Use this class to load the "config/rush-project.json" config file.
@@ -50,6 +50,7 @@ export declare class PhasedScriptAction extends BaseScriptAction<IPhasedCommandC
50
50
  private readonly _watchParameter;
51
51
  private readonly _timelineParameter;
52
52
  private readonly _installParameter;
53
+ private readonly _noIPCParameter;
53
54
  constructor(options: IPhasedScriptActionOptions);
54
55
  runAsync(): Promise<void>;
55
56
  private _runInitialPhases;
@@ -1,4 +1,3 @@
1
- import type { StdioSummarizer } from '@rushstack/terminal';
2
1
  import type { CollatedWriter } from '@rushstack/stream-collator';
3
2
  import type { ITerminal, ITerminalProvider } from '@rushstack/node-core-library';
4
3
  import type { OperationStatus } from './OperationStatus';
@@ -22,10 +21,6 @@ export interface IOperationRunnerContext {
22
21
  * Defaults to `true`. Will be `false` if Rush was invoked with `--verbose`.
23
22
  */
24
23
  quietMode: boolean;
25
- /**
26
- * Object used to report a summary at the end of the Rush invocation.
27
- */
28
- stdioSummarizer: StdioSummarizer;
29
24
  /**
30
25
  * Object used to manage metadata of the operation.
31
26
  *
@@ -48,13 +43,6 @@ export interface IOperationRunnerContext {
48
43
  * it later (for example to re-print errors at end of execution).
49
44
  */
50
45
  error?: Error;
51
- /**
52
- * Normally the incremental build logic will rebuild changed projects as well as
53
- * any projects that directly or indirectly depend on a changed project.
54
- * If true, then the incremental build logic will only rebuild changed projects and
55
- * ignore dependent projects.
56
- */
57
- readonly changedProjectsOnly: boolean;
58
46
  /**
59
47
  * Invokes the specified callback with a terminal that is associated with this operation.
60
48
  *
@@ -13,7 +13,6 @@ export interface IOperationExecutionRecordContext {
13
13
  onOperationStatusChanged?: (record: OperationExecutionRecord) => void;
14
14
  debugMode: boolean;
15
15
  quietMode: boolean;
16
- changedProjectsOnly: boolean;
17
16
  }
18
17
  /**
19
18
  * Internal class representing everything about executing an operation
@@ -84,7 +83,6 @@ export declare class OperationExecutionRecord implements IOperationRunnerContext
84
83
  get name(): string;
85
84
  get debugMode(): boolean;
86
85
  get quietMode(): boolean;
87
- get changedProjectsOnly(): boolean;
88
86
  get collatedWriter(): CollatedWriter;
89
87
  get nonCachedDurationMs(): number | undefined;
90
88
  get cobuildRunnerId(): string | undefined;
@@ -1,8 +1,18 @@
1
+ import type { IPhase } from '../../api/CommandLineConfiguration';
2
+ import type { RushConfigurationProject } from '../../api/RushConfigurationProject';
1
3
  import type { IPhasedCommandPlugin, PhasedCommandHooks } from '../../pluginFramework/PhasedCommandHooks';
4
+ export declare const PLUGIN_NAME: 'ShellOperationRunnerPlugin';
2
5
  /**
3
6
  * Core phased command plugin that provides the functionality for executing an operation via shell command.
4
7
  */
5
8
  export declare class ShellOperationRunnerPlugin implements IPhasedCommandPlugin {
6
9
  apply(hooks: PhasedCommandHooks): void;
7
10
  }
11
+ /**
12
+ * Memoizer for custom parameter values by phase
13
+ * @returns A function that returns the custom parameter values for a given phase
14
+ */
15
+ export declare function getCustomParameterValuesByPhase(): (phase: IPhase) => ReadonlyArray<string>;
16
+ export declare function formatCommand(rawCommand: string, customParameterValues: ReadonlyArray<string>): string;
17
+ export declare function getDisplayName(phase: IPhase, project: RushConfigurationProject): string;
8
18
  //# sourceMappingURL=ShellOperationRunnerPlugin.d.ts.map
@@ -83,6 +83,12 @@ export interface ICreateOperationsContext {
83
83
  * The Rush configuration
84
84
  */
85
85
  readonly rushConfiguration: RushConfiguration;
86
+ /**
87
+ * Marks an operation's result as invalid, potentially triggering a new build. Only applicable in watch mode.
88
+ * @param operation - The operation to invalidate
89
+ * @param reason - The reason for invalidating the operation
90
+ */
91
+ readonly invalidateOperation?: ((operation: Operation, reason: string) => void) | undefined;
86
92
  }
87
93
  /**
88
94
  * Hooks into the execution process for phased commands
@@ -125,6 +131,10 @@ export declare class PhasedCommandHooks {
125
131
  readonly afterExecuteOperation: AsyncSeriesHook<[
126
132
  IOperationRunnerContext & IOperationExecutionResult
127
133
  ]>;
134
+ /**
135
+ * Hook invoked to shutdown long-lived work in plugins.
136
+ */
137
+ readonly shutdown: SyncHook<void>;
128
138
  /**
129
139
  * Hook invoked after a run has finished and the command is watching for changes.
130
140
  * May be used to display additional relevant data to the user.
@@ -59,6 +59,10 @@ export interface ILifecycleCommandOptions {
59
59
  * If true, attempt to establish a NodeJS IPC channel to the child process.
60
60
  */
61
61
  ipc?: boolean;
62
+ /**
63
+ * If true, wire up SubprocessTerminator to the child process.
64
+ */
65
+ connectSubprocessTerminator?: boolean;
62
66
  }
63
67
  export interface IEnvironmentPathOptions {
64
68
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-sdk",
3
- "version": "5.112.2-pr4485.1",
3
+ "version": "5.112.2-pr4485.3",
4
4
  "description": "An API for interacting with the Rush engine",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,11 +30,11 @@
30
30
  "devDependencies": {
31
31
  "@types/semver": "7.5.0",
32
32
  "@types/webpack-env": "1.18.0",
33
- "@microsoft/rush-lib": "5.112.2-pr4485.1",
34
- "@rushstack/stream-collator": "4.1.18",
33
+ "@microsoft/rush-lib": "5.112.2-pr4485.3",
35
34
  "@rushstack/heft": "0.64.0",
36
- "@rushstack/terminal": "0.7.17",
35
+ "@rushstack/stream-collator": "4.1.18",
37
36
  "local-node-rig": "1.0.0",
37
+ "@rushstack/terminal": "0.7.17",
38
38
  "@rushstack/ts-command-line": "4.17.1"
39
39
  },
40
40
  "scripts": {