@nx/workspace 24.0.0-beta.1 → 24.0.0-beta.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.
@@ -159,7 +159,7 @@ function appendOriginPrefix(nxJson) {
159
159
  if (nxJson?.affected?.defaultBase) {
160
160
  nxJson.affected.defaultBase = `origin/${nxJson.affected.defaultBase}`;
161
161
  }
162
- if (nxJson.defaultBase || !nxJson.affected) {
162
+ if (nxJson.defaultBase || !nxJson.affected?.defaultBase) {
163
163
  nxJson.defaultBase = `origin/${nxJson.defaultBase ?? (0, default_base_1.deduceDefaultBase)()}`;
164
164
  }
165
165
  }
@@ -8,7 +8,6 @@ const tslib_1 = require("tslib");
8
8
  const devkit_1 = require("@nx/devkit");
9
9
  const presets_1 = require("../utils/presets");
10
10
  const versions_1 = require("../../utils/versions");
11
- const get_npm_package_version_1 = require("../utils/get-npm-package-version");
12
11
  const path_1 = require("path");
13
12
  const yargs_parser_1 = tslib_1.__importDefault(require("yargs-parser"));
14
13
  const child_process_1 = require("child_process");
@@ -269,10 +268,7 @@ function getPresetDependencies({ preset, presetVersion, bundler, e2eTestRunner,
269
268
  default: {
270
269
  return {
271
270
  dev: {},
272
- dependencies: {
273
- [preset]: process.env['NX_E2E_PRESET_VERSION'] ??
274
- (0, get_npm_package_version_1.getNpmPackageVersion)(preset, presetVersion),
275
- },
271
+ dependencies: { [preset]: presetVersion },
276
272
  };
277
273
  }
278
274
  }
@@ -7,12 +7,19 @@ const presets_1 = require("../utils/presets");
7
7
  const generate_workspace_files_1 = require("./generate-workspace-files");
8
8
  const generate_preset_1 = require("./generate-preset");
9
9
  const child_process_1 = require("child_process");
10
+ const internal_1 = require("@nx/devkit/internal");
11
+ const get_npm_package_version_1 = require("../utils/get-npm-package-version");
10
12
  async function newGenerator(tree, opts) {
11
13
  const options = normalizeOptions(opts);
12
14
  validateOptions(options, tree);
13
15
  const { token, aiAgentsCallback, presetDependencies } = await (0, generate_workspace_files_1.generateWorkspaceFiles)(tree, options);
14
16
  options.nxCloudToken = token;
15
17
  (0, generate_preset_1.addPresetDependencies)(tree, options, presetDependencies);
18
+ if (options.isCustomPreset && options.presetVersion) {
19
+ // The preset generator only runs after the install below, so the
20
+ // decisions it declares for its dependency tree are recorded here.
21
+ await (0, internal_1.acknowledgeDeclaredBuildScripts)(tree, options.packageManager, options.preset, options.presetVersion, options.directory);
22
+ }
16
23
  await (0, devkit_1.formatFiles)(tree);
17
24
  return async () => {
18
25
  if (!options.skipInstall) {
@@ -105,5 +112,10 @@ function normalizeOptions(options) {
105
112
  // explicitly specified "presetVersion" takes priority over the one from the package name
106
113
  normalized.presetVersion ??= parsed.version;
107
114
  normalized.isCustomPreset = !Object.values(presets_1.Preset).includes(options.preset);
115
+ if (normalized.isCustomPreset) {
116
+ normalized.presetVersion =
117
+ process.env['NX_E2E_PRESET_VERSION'] ??
118
+ (0, get_npm_package_version_1.getNpmPackageVersion)(normalized.preset, normalized.presetVersion);
119
+ }
108
120
  return normalized;
109
121
  }
@@ -4,6 +4,7 @@ exports.presetGenerator = presetGenerator;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const presets_1 = require("../utils/presets");
6
6
  const path_1 = require("path");
7
+ const nodeBundlers = ['tsc', 'rolldown', 'esbuild', 'webpack'];
7
8
  async function presetGenerator(tree, options) {
8
9
  const presetTask = await createPreset(tree, options);
9
10
  return async () => {
@@ -14,9 +15,6 @@ async function presetGenerator(tree, options) {
14
15
  }
15
16
  exports.default = presetGenerator;
16
17
  async function createPreset(tree, options) {
17
- const nxJson = (0, devkit_1.readNxJson)(tree);
18
- const addPlugin = process.env.NX_ADD_PLUGINS !== 'false' &&
19
- nxJson.useInferencePlugins !== false;
20
18
  if (options.preset === presets_1.Preset.Apps || options.preset === presets_1.Preset.NPM) {
21
19
  // These presets generate no project, so nothing downstream would set the
22
20
  // formatter up and the choice would be dropped. Only the formatter is
@@ -98,7 +96,6 @@ async function createPreset(tree, options) {
98
96
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
99
97
  unitTestRunner: options.unitTestRunner ??
100
98
  (options.bundler === 'vite' ? 'vitest' : 'jest'),
101
- addPlugin,
102
99
  routing: options.routing,
103
100
  useReactRouter: options.useReactRouter,
104
101
  nxCloudToken: options.nxCloudToken,
@@ -121,7 +118,6 @@ async function createPreset(tree, options) {
121
118
  useReactRouter: options.useReactRouter,
122
119
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
123
120
  unitTestRunner: options.unitTestRunner ?? (bundler === 'vite' ? 'vitest' : 'jest'),
124
- addPlugin,
125
121
  nxCloudToken: options.nxCloudToken,
126
122
  formatter: options.formatter,
127
123
  });
@@ -135,7 +131,6 @@ async function createPreset(tree, options) {
135
131
  linter: options.linter,
136
132
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
137
133
  unitTestRunner: options.unitTestRunner,
138
- addPlugin,
139
134
  nxCloudToken: options.nxCloudToken,
140
135
  useTsSolution: options.workspaces,
141
136
  formatter: options.formatter,
@@ -152,7 +147,6 @@ async function createPreset(tree, options) {
152
147
  rootProject: true,
153
148
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
154
149
  unitTestRunner: options.unitTestRunner ?? 'vitest',
155
- addPlugin,
156
150
  nxCloudToken: options.nxCloudToken,
157
151
  formatter: options.formatter,
158
152
  });
@@ -166,7 +160,6 @@ async function createPreset(tree, options) {
166
160
  linter: options.linter,
167
161
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
168
162
  unitTestRunner: options.unitTestRunner,
169
- addPlugin,
170
163
  nxCloudToken: options.nxCloudToken,
171
164
  useTsSolution: options.workspaces,
172
165
  formatter: options.formatter,
@@ -183,7 +176,6 @@ async function createPreset(tree, options) {
183
176
  rootProject: true,
184
177
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
185
178
  unitTestRunner: options.unitTestRunner ?? 'vitest',
186
- addPlugin,
187
179
  nxCloudToken: options.nxCloudToken,
188
180
  formatter: options.formatter,
189
181
  });
@@ -199,7 +191,6 @@ async function createPreset(tree, options) {
199
191
  src: options.nextSrcDir,
200
192
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
201
193
  unitTestRunner: options.unitTestRunner,
202
- addPlugin,
203
194
  useTsSolution: options.workspaces,
204
195
  formatter: options.formatter,
205
196
  useProjectJson: options.useProjectJson,
@@ -217,7 +208,6 @@ async function createPreset(tree, options) {
217
208
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
218
209
  unitTestRunner: options.unitTestRunner,
219
210
  rootProject: true,
220
- addPlugin,
221
211
  formatter: options.formatter,
222
212
  });
223
213
  }
@@ -230,7 +220,6 @@ async function createPreset(tree, options) {
230
220
  linter: options.linter,
231
221
  bundler: 'vite',
232
222
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
233
- addPlugin,
234
223
  nxCloudToken: options.nxCloudToken,
235
224
  formatter: options.formatter,
236
225
  });
@@ -243,7 +232,6 @@ async function createPreset(tree, options) {
243
232
  linter: options.linter,
244
233
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
245
234
  unitTestRunner: options.unitTestRunner,
246
- addPlugin,
247
235
  useTsSolution: options.workspaces,
248
236
  formatter: options.formatter,
249
237
  useProjectJson: options.useProjectJson,
@@ -257,7 +245,6 @@ async function createPreset(tree, options) {
257
245
  linter: options.linter,
258
246
  e2eTestRunner: options.e2eTestRunner ?? 'jest',
259
247
  unitTestRunner: options.unitTestRunner,
260
- addPlugin,
261
248
  useTsSolution: options.workspaces,
262
249
  formatter: options.formatter,
263
250
  useProjectJson: options.useProjectJson,
@@ -271,7 +258,6 @@ async function createPreset(tree, options) {
271
258
  linter: options.linter,
272
259
  e2eTestRunner: options.e2eTestRunner ?? 'detox',
273
260
  unitTestRunner: options.unitTestRunner,
274
- addPlugin,
275
261
  nxCloudToken: options.nxCloudToken,
276
262
  bundler: options.bundler ?? 'webpack',
277
263
  useTsSolution: options.workspaces,
@@ -287,7 +273,6 @@ async function createPreset(tree, options) {
287
273
  linter: options.linter,
288
274
  e2eTestRunner: options.e2eTestRunner ?? 'detox',
289
275
  unitTestRunner: options.unitTestRunner,
290
- addPlugin,
291
276
  nxCloudToken: options.nxCloudToken,
292
277
  useTsSolution: options.workspaces,
293
278
  formatter: options.formatter,
@@ -322,13 +307,14 @@ async function createPreset(tree, options) {
322
307
  testEnvironment: 'node',
323
308
  js: options.js,
324
309
  rootProject: true,
325
- addPlugin,
326
310
  formatter: options.formatter,
327
311
  });
328
312
  }
329
313
  else if (options.preset === presets_1.Preset.NodeStandalone) {
330
314
  const { applicationGenerator: nodeApplicationGenerator } = require('@nx' + '/node');
331
- const bundler = options.bundler === 'webpack' ? 'webpack' : 'esbuild';
315
+ const bundler = nodeBundlers.includes(options.bundler)
316
+ ? options.bundler
317
+ : undefined;
332
318
  return nodeApplicationGenerator(tree, {
333
319
  bundler,
334
320
  name: options.workspaces ? undefined : options.name,
@@ -337,15 +323,16 @@ async function createPreset(tree, options) {
337
323
  framework: options.framework,
338
324
  docker: options.docker,
339
325
  rootProject: true,
340
- e2eTestRunner: options.e2eTestRunner ?? 'jest',
326
+ e2eTestRunner: options.e2eTestRunner,
341
327
  unitTestRunner: options.unitTestRunner,
342
- addPlugin,
343
328
  formatter: options.formatter,
344
329
  });
345
330
  }
346
331
  else if (options.preset === presets_1.Preset.NodeMonorepo) {
347
332
  const { applicationGenerator: nodeApplicationGenerator } = require('@nx' + '/node');
348
- const bundler = options.bundler === 'webpack' ? 'webpack' : 'esbuild';
333
+ const bundler = nodeBundlers.includes(options.bundler)
334
+ ? options.bundler
335
+ : undefined;
349
336
  return nodeApplicationGenerator(tree, {
350
337
  bundler,
351
338
  name: options.workspaces ? undefined : options.name,
@@ -354,9 +341,8 @@ async function createPreset(tree, options) {
354
341
  framework: options.framework,
355
342
  docker: options.docker,
356
343
  rootProject: false,
357
- e2eTestRunner: options.e2eTestRunner ?? 'jest',
344
+ e2eTestRunner: options.e2eTestRunner,
358
345
  unitTestRunner: options.unitTestRunner,
359
- addPlugin,
360
346
  useTsSolution: options.workspaces,
361
347
  formatter: options.formatter,
362
348
  useProjectJson: options.useProjectJson,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/workspace",
3
- "version": "24.0.0-beta.1",
3
+ "version": "24.0.0-beta.3",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "files": [
@@ -78,17 +78,17 @@
78
78
  }
79
79
  },
80
80
  "dependencies": {
81
- "@nx/devkit": "24.0.0-beta.1",
81
+ "@nx/devkit": "24.0.0-beta.3",
82
82
  "@zkochan/js-yaml": "0.0.7",
83
83
  "chalk": "^4.1.0",
84
84
  "picomatch": "4.0.4",
85
85
  "semver": "^7.6.3",
86
86
  "tslib": "^2.3.0",
87
87
  "yargs-parser": "21.1.1",
88
- "nx": "24.0.0-beta.1"
88
+ "nx": "24.0.0-beta.3"
89
89
  },
90
90
  "devDependencies": {
91
- "nx": "24.0.0-beta.1"
91
+ "nx": "24.0.0-beta.3"
92
92
  },
93
93
  "publishConfig": {
94
94
  "access": "public"