@nx/workspace 20.2.0-canary.20241129-2cb58b9 → 20.2.0-canary.20241203-6b87005

Sign up to get free protection for your applications and to get access to all the features.
package/migrations.json CHANGED
@@ -50,6 +50,19 @@
50
50
  "alwaysAddToPackageJson": false
51
51
  }
52
52
  }
53
+ },
54
+ "20.2.0": {
55
+ "version": "20.2.0-beta.5",
56
+ "x-prompt": "Do you want to update to TypeScript v5.6?",
57
+ "requires": {
58
+ "typescript": ">=5.5.0 <5.6.0"
59
+ },
60
+ "packages": {
61
+ "typescript": {
62
+ "version": "~5.6.2",
63
+ "alwaysAddToPackageJson": false
64
+ }
65
+ }
53
66
  }
54
67
  }
55
68
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/workspace",
3
- "version": "20.2.0-canary.20241129-2cb58b9",
3
+ "version": "20.2.0-canary.20241203-6b87005",
4
4
  "private": false,
5
5
  "description": "The Workspace plugin contains executors and generators that are useful for any Nx workspace. It should be present in every Nx workspace and other plugins build on it.",
6
6
  "repository": {
@@ -38,12 +38,12 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "@nx/devkit": "20.2.0-canary.20241129-2cb58b9",
41
+ "@nx/devkit": "20.2.0-canary.20241203-6b87005",
42
42
  "chalk": "^4.1.0",
43
43
  "enquirer": "~2.3.6",
44
44
  "tslib": "^2.3.0",
45
45
  "yargs-parser": "21.1.1",
46
- "nx": "20.2.0-canary.20241129-2cb58b9"
46
+ "nx": "20.2.0-canary.20241203-6b87005"
47
47
  },
48
48
  "publishConfig": {
49
49
  "access": "public"
@@ -68,9 +68,11 @@ function generatePreset(host, opts) {
68
68
  ? `--e2eTestRunner=${opts.e2eTestRunner}`
69
69
  : null,
70
70
  opts.ssr ? `--ssr` : null,
71
+ opts.serverRouting ? `--server-routing` : null,
71
72
  opts.prefix !== undefined ? `--prefix=${opts.prefix}` : null,
72
73
  opts.nxCloudToken ? `--nxCloudToken=${opts.nxCloudToken}` : null,
73
74
  opts.formatter ? `--formatter=${opts.formatter}` : null,
75
+ opts.workspaces ? `--workspaces` : null,
74
76
  ].filter((e) => !!e);
75
77
  }
76
78
  }
@@ -325,15 +325,22 @@ function setUpWorkspacesInPackageJson(tree, options) {
325
325
  if (options.preset === presets_1.Preset.NPM ||
326
326
  (options.preset === presets_1.Preset.TS &&
327
327
  process.env.NX_ADD_PLUGINS !== 'false' &&
328
- process.env.NX_ADD_TS_PLUGIN !== 'false')) {
328
+ process.env.NX_ADD_TS_PLUGIN !== 'false') ||
329
+ ((options.preset === presets_1.Preset.Expo ||
330
+ options.preset === presets_1.Preset.NextJs ||
331
+ options.preset === presets_1.Preset.ReactMonorepo ||
332
+ options.preset === presets_1.Preset.ReactNative ||
333
+ options.preset === presets_1.Preset.RemixMonorepo) &&
334
+ options.workspaces)) {
335
+ const workspaces = options.workspaceGlobs ?? ['packages/**'];
329
336
  if (options.packageManager === 'pnpm') {
330
- tree.write((0, path_1.join)(options.directory, 'pnpm-workspace.yaml'), `packages:
331
- - 'packages/*'
337
+ tree.write((0, path_1.join)(options.directory, 'pnpm-workspace.yaml'), `packages:
338
+ - ${workspaces.join('\n - ')}
332
339
  `);
333
340
  }
334
341
  else {
335
342
  (0, devkit_1.updateJson)(tree, (0, path_1.join)(options.directory, 'package.json'), (json) => {
336
- json.workspaces = ['packages/*'];
343
+ json.workspaces = workspaces;
337
344
  return json;
338
345
  });
339
346
  }
@@ -20,15 +20,19 @@ interface Schema {
20
20
  packageManager?: PackageManager;
21
21
  e2eTestRunner?: 'cypress' | 'playwright' | 'detox' | 'jest' | 'none';
22
22
  ssr?: boolean;
23
+ serverRouting?: boolean;
23
24
  prefix?: string;
24
25
  useGitHub?: boolean;
25
26
  nxCloud?: 'yes' | 'skip' | 'circleci' | 'github';
26
27
  formatter?: 'none' | 'prettier';
28
+ workspaces?: boolean;
29
+ workspaceGlobs?: string | string[];
27
30
  }
28
31
  export interface NormalizedSchema extends Schema {
29
32
  presetVersion?: string;
30
33
  isCustomPreset: boolean;
31
34
  nxCloudToken?: string;
35
+ workspaceGlobs?: string[];
32
36
  }
33
37
  export declare function newGenerator(tree: Tree, opts: Schema): Promise<() => Promise<void>>;
34
38
  export default newGenerator;
@@ -71,6 +71,11 @@ function parsePresetName(input) {
71
71
  function normalizeOptions(options) {
72
72
  const normalized = {
73
73
  ...options,
74
+ workspaceGlobs: Array.isArray(options.workspaceGlobs)
75
+ ? options.workspaceGlobs
76
+ : options.workspaceGlobs
77
+ ? [options.workspaceGlobs]
78
+ : undefined,
74
79
  };
75
80
  if (!options.directory) {
76
81
  normalized.directory = normalized.name;
@@ -50,7 +50,7 @@
50
50
  "linter": {
51
51
  "description": "The tool to use for running lint checks.",
52
52
  "type": "string",
53
- "enum": ["eslint"],
53
+ "enum": ["eslint", "none"],
54
54
  "default": "eslint"
55
55
  },
56
56
  "packageManager": {
@@ -83,6 +83,10 @@
83
83
  "type": "boolean",
84
84
  "default": false
85
85
  },
86
+ "serverRouting": {
87
+ "description": "Use the Angular Server Routing and App Engine APIs (Developer Preview).",
88
+ "type": "boolean"
89
+ },
86
90
  "prefix": {
87
91
  "description": "The prefix to use for Angular component and directive selectors.",
88
92
  "type": "string"
@@ -92,6 +96,11 @@
92
96
  "type": "string",
93
97
  "enum": ["none", "prettier"],
94
98
  "default": "none"
99
+ },
100
+ "workspaces": {
101
+ "description": "Whether to use package manager workspaces.",
102
+ "type": "boolean",
103
+ "default": false
95
104
  }
96
105
  },
97
106
  "additionalProperties": true
@@ -32,6 +32,7 @@ async function createPreset(tree, options) {
32
32
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
33
33
  bundler: options.bundler,
34
34
  ssr: options.ssr,
35
+ serverRouting: options.serverRouting,
35
36
  prefix: options.prefix,
36
37
  nxCloudToken: options.nxCloudToken,
37
38
  });
@@ -49,6 +50,7 @@ async function createPreset(tree, options) {
49
50
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
50
51
  bundler: options.bundler,
51
52
  ssr: options.ssr,
53
+ serverRouting: options.serverRouting,
52
54
  prefix: options.prefix,
53
55
  nxCloudToken: options.nxCloudToken,
54
56
  });
@@ -65,6 +67,8 @@ async function createPreset(tree, options) {
65
67
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
66
68
  addPlugin,
67
69
  nxCloudToken: options.nxCloudToken,
70
+ useTsSolution: options.workspaces,
71
+ formatter: options.formatter,
68
72
  });
69
73
  }
70
74
  else if (options.preset === presets_1.Preset.ReactStandalone) {
@@ -81,6 +85,7 @@ async function createPreset(tree, options) {
81
85
  unitTestRunner: options.bundler === 'vite' ? 'vitest' : 'jest',
82
86
  addPlugin,
83
87
  nxCloudToken: options.nxCloudToken,
88
+ formatter: options.formatter,
84
89
  });
85
90
  }
86
91
  else if (options.preset === presets_1.Preset.RemixMonorepo) {
@@ -94,6 +99,8 @@ async function createPreset(tree, options) {
94
99
  unitTestRunner: 'vitest',
95
100
  addPlugin,
96
101
  nxCloudToken: options.nxCloudToken,
102
+ useTsSolution: options.workspaces,
103
+ formatter: options.formatter,
97
104
  });
98
105
  }
99
106
  else if (options.preset === presets_1.Preset.RemixStandalone) {
@@ -108,6 +115,7 @@ async function createPreset(tree, options) {
108
115
  unitTestRunner: 'vitest',
109
116
  addPlugin,
110
117
  nxCloudToken: options.nxCloudToken,
118
+ formatter: options.formatter,
111
119
  });
112
120
  }
113
121
  else if (options.preset === presets_1.Preset.VueMonorepo) {
@@ -178,6 +186,8 @@ async function createPreset(tree, options) {
178
186
  src: options.nextSrcDir,
179
187
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
180
188
  addPlugin,
189
+ useTsSolution: options.workspaces,
190
+ formatter: options.formatter,
181
191
  });
182
192
  }
183
193
  else if (options.preset === presets_1.Preset.NextJsStandalone) {
@@ -193,6 +203,7 @@ async function createPreset(tree, options) {
193
203
  e2eTestRunner: options.e2eTestRunner ?? 'playwright',
194
204
  rootProject: true,
195
205
  addPlugin,
206
+ formatter: options.formatter,
196
207
  });
197
208
  }
198
209
  else if (options.preset === presets_1.Preset.WebComponents) {
@@ -241,6 +252,8 @@ async function createPreset(tree, options) {
241
252
  addPlugin,
242
253
  nxCloudToken: options.nxCloudToken,
243
254
  bundler: options.bundler ?? 'webpack',
255
+ useTsSolution: options.workspaces,
256
+ formatter: options.formatter,
244
257
  });
245
258
  }
246
259
  else if (options.preset === presets_1.Preset.Expo) {
@@ -252,6 +265,8 @@ async function createPreset(tree, options) {
252
265
  e2eTestRunner: options.e2eTestRunner ?? 'detox',
253
266
  addPlugin,
254
267
  nxCloudToken: options.nxCloudToken,
268
+ useTsSolution: options.workspaces,
269
+ formatter: options.formatter,
255
270
  });
256
271
  }
257
272
  else if (options.preset === presets_1.Preset.TS) {
@@ -7,6 +7,7 @@ export interface Schema {
7
7
  style?: string;
8
8
  linter?: string;
9
9
  formatter?: 'none' | 'prettier';
10
+ workspaces?: boolean;
10
11
  standaloneConfig?: boolean;
11
12
  framework?: string;
12
13
  packageManager?: PackageManager;
@@ -19,6 +20,7 @@ export interface Schema {
19
20
  e2eTestRunner?: 'cypress' | 'playwright' | 'jest' | 'detox' | 'none';
20
21
  js?: boolean;
21
22
  ssr?: boolean;
23
+ serverRouting?: boolean;
22
24
  prefix?: string;
23
25
  nxCloudToken?: string;
24
26
  }
@@ -17,7 +17,7 @@
17
17
  "linter": {
18
18
  "description": "The tool to use for running lint checks.",
19
19
  "type": "string",
20
- "enum": ["eslint"],
20
+ "enum": ["eslint", "none"],
21
21
  "default": "eslint"
22
22
  },
23
23
  "routing": {
@@ -100,9 +100,24 @@
100
100
  "type": "boolean",
101
101
  "default": false
102
102
  },
103
+ "serverRouting": {
104
+ "description": "Use the Angular Server Routing and App Engine APIs (Developer Preview).",
105
+ "type": "boolean"
106
+ },
103
107
  "prefix": {
104
108
  "description": "The prefix to use for Angular component and directive selectors.",
105
109
  "type": "string"
110
+ },
111
+ "formatter": {
112
+ "description": "The tool to use for code formatting.",
113
+ "type": "string",
114
+ "enum": ["none", "prettier"],
115
+ "default": "none"
116
+ },
117
+ "workspaces": {
118
+ "description": "Whether to use package manager workspaces.",
119
+ "type": "boolean",
120
+ "default": false
106
121
  }
107
122
  },
108
123
  "required": ["preset", "name"]
@@ -1,3 +1,3 @@
1
1
  export declare const nxVersion: any;
2
- export declare const typescriptVersion = "~5.5.2";
3
- export declare const angularCliVersion = "~18.2.0";
2
+ export declare const typescriptVersion = "~5.6.2";
3
+ export declare const angularCliVersion = "~19.0.0";
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.angularCliVersion = exports.typescriptVersion = exports.nxVersion = void 0;
4
4
  exports.nxVersion = require('../../package.json').version;
5
- exports.typescriptVersion = '~5.5.2';
5
+ exports.typescriptVersion = '~5.6.2';
6
6
  // TODO: remove when preset generation is reworked and
7
7
  // deps are not installed from workspace
8
- exports.angularCliVersion = '~18.2.0';
8
+ exports.angularCliVersion = '~19.0.0';