@rushstack/rush-sdk 5.112.2-pr4485.2 → 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.
@@ -1339,6 +1339,12 @@ export declare interface IExperimentsJson {
1339
1339
  * If true, Rush will not allow node_modules in the repo folder or in parent folders.
1340
1340
  */
1341
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;
1342
1348
  }
1343
1349
 
1344
1350
  /**
@@ -1743,13 +1749,6 @@ export declare interface IOperationSettings {
1743
1749
  * calculating final hash value when reading and writing the build cache
1744
1750
  */
1745
1751
  dependsOnAdditionalFiles?: string[];
1746
- /**
1747
- * When running this operation in watch mode, enable IPC functionality. This allows reusing a long-lived child
1748
- * process instead of spawning a new child process for each incremental build.
1749
- *
1750
- * Implicitly disables the build cache for this operation.
1751
- */
1752
- useIPCInWatchMode?: boolean;
1753
1752
  }
1754
1753
 
1755
1754
  /**
@@ -2868,6 +2867,10 @@ export declare class PhasedCommandHooks {
2868
2867
  readonly afterExecuteOperation: AsyncSeriesHook<[
2869
2868
  IOperationRunnerContext & IOperationExecutionResult
2870
2869
  ]>;
2870
+ /**
2871
+ * Hook invoked to shutdown long-lived work in plugins.
2872
+ */
2873
+ readonly shutdown: SyncHook<void>;
2871
2874
  /**
2872
2875
  * Hook invoked after a run has finished and the command is watching for changes.
2873
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,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
@@ -131,6 +131,10 @@ export declare class PhasedCommandHooks {
131
131
  readonly afterExecuteOperation: AsyncSeriesHook<[
132
132
  IOperationRunnerContext & IOperationExecutionResult
133
133
  ]>;
134
+ /**
135
+ * Hook invoked to shutdown long-lived work in plugins.
136
+ */
137
+ readonly shutdown: SyncHook<void>;
134
138
  /**
135
139
  * Hook invoked after a run has finished and the command is watching for changes.
136
140
  * May be used to display additional relevant data to the user.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/rush-sdk",
3
- "version": "5.112.2-pr4485.2",
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,12 +30,12 @@
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.2",
34
- "local-node-rig": "1.0.0",
35
- "@rushstack/stream-collator": "4.1.18",
33
+ "@microsoft/rush-lib": "5.112.2-pr4485.3",
36
34
  "@rushstack/heft": "0.64.0",
37
- "@rushstack/ts-command-line": "4.17.1",
38
- "@rushstack/terminal": "0.7.17"
35
+ "@rushstack/stream-collator": "4.1.18",
36
+ "local-node-rig": "1.0.0",
37
+ "@rushstack/terminal": "0.7.17",
38
+ "@rushstack/ts-command-line": "4.17.1"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "heft build --clean",