nx 18.3.0-canary.20240413-134cbbc → 18.3.0
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.
- package/package.json +12 -12
- package/src/command-line/init/implementation/add-nx-to-monorepo.js +0 -15
- package/src/command-line/init/implementation/add-nx-to-nest.js +0 -4
- package/src/command-line/init/implementation/add-nx-to-npm-repo.js +1 -4
- package/src/command-line/init/implementation/angular/index.js +0 -6
- package/src/command-line/init/implementation/angular/legacy-angular-versions.js +0 -6
- package/src/command-line/init/implementation/react/index.js +0 -19
- package/src/command-line/init/implementation/utils.d.ts +2 -3
- package/src/command-line/init/implementation/utils.js +6 -11
- package/src/command-line/init/init-v1.js +20 -0
- package/src/command-line/init/init-v2.js +37 -43
- package/src/command-line/release/command-object.js +1 -1
- package/src/core/graph/3rdpartylicenses.txt +26 -23
- package/src/core/graph/main.js +1 -1
- package/src/core/graph/runtime.js +1 -1
- package/src/core/graph/styles.js +1 -1
- package/src/devkit-internals.d.ts +3 -0
- package/src/devkit-internals.js +7 -1
- package/src/project-graph/error-types.d.ts +13 -2
- package/src/project-graph/error-types.js +39 -8
- package/src/project-graph/plugins/utils.js +12 -20
- package/src/project-graph/project-graph.d.ts +3 -3
- package/src/project-graph/utils/project-configuration-utils.js +25 -12
- package/src/project-graph/utils/retrieve-workspace-files.d.ts +3 -3
- package/src/project-graph/utils/retrieve-workspace-files.js +5 -9
@@ -1 +1 @@
|
|
1
|
-
(()=>{"use strict";var e,r={},t={};function o(e){var n=t[e];if(void 0!==n)return n.exports;var i=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,o),i.loaded=!0,i.exports}o.m=r,e=[],o.O=(r,t,n,i)=>{if(!t){var l=1/0;for(f=0;f<e.length;f++){for(var[t,n,i]=e[f],a=!0,u=0;u<t.length;u++)(!1&i||l>=i)&&Object.keys(o.O).every((e=>o.O[e](t[u])))?t.splice(u--,1):(a=!1,i<l&&(l=i));if(a){e.splice(f--,1);var d=n();void 0!==d&&(r=d)}}return r}i=i||0;for(var f=e.length;f>0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,n,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={
|
1
|
+
(()=>{"use strict";var e,r={},t={};function o(e){var n=t[e];if(void 0!==n)return n.exports;var i=t[e]={id:e,loaded:!1,exports:{}};return r[e].call(i.exports,i,i.exports,o),i.loaded=!0,i.exports}o.m=r,e=[],o.O=(r,t,n,i)=>{if(!t){var l=1/0;for(f=0;f<e.length;f++){for(var[t,n,i]=e[f],a=!0,u=0;u<t.length;u++)(!1&i||l>=i)&&Object.keys(o.O).every((e=>o.O[e](t[u])))?t.splice(u--,1):(a=!1,i<l&&(l=i));if(a){e.splice(f--,1);var d=n();void 0!==d&&(r=d)}}return r}i=i||0;for(var f=e.length;f>0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[t,n,i]},o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e={1:0};o.O.j=r=>0===e[r];var r=(r,t)=>{var n,i,[l,a,u]=t,d=0;if(l.some((r=>0!==e[r]))){for(n in a)o.o(a,n)&&(o.m[n]=a[n]);if(u)var f=u(o)}for(r&&r(t);d<l.length;d++)i=l[d],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0;return o.O(f)},t=self.webpackChunk=self.webpackChunk||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();
|
package/src/core/graph/styles.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[
|
1
|
+
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2],{22232:(s,e,k)=>{k.r(e)}},s=>{var e;e=22232,s(s.s=e)}]);
|
@@ -17,4 +17,7 @@ export { splitByColons } from './utils/split-target';
|
|
17
17
|
export { hashObject } from './hasher/file-hasher';
|
18
18
|
export { hashWithWorkspaceContext } from './utils/workspace-context';
|
19
19
|
export { createProjectRootMappingsFromProjectConfigurations, findProjectForPath, } from './project-graph/utils/find-project-for-path';
|
20
|
+
export { retrieveProjectConfigurations } from './project-graph/utils/retrieve-workspace-files';
|
21
|
+
export { LoadedNxPlugin } from './project-graph/plugins/internal-api';
|
22
|
+
export * from './project-graph/error-types';
|
20
23
|
export { registerTsProject } from './plugins/js/utils/register';
|
package/src/devkit-internals.js
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.registerTsProject = exports.findProjectForPath = exports.createProjectRootMappingsFromProjectConfigurations = exports.hashWithWorkspaceContext = exports.hashObject = exports.splitByColons = exports.readModulePackageJson = exports.stripIndent = exports.sortObjectByKeys = exports.combineOptionsForExecutor = exports.splitTarget = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.getExecutorInformation = exports.createTempNpmDirectory = void 0;
|
3
|
+
exports.registerTsProject = exports.LoadedNxPlugin = exports.retrieveProjectConfigurations = exports.findProjectForPath = exports.createProjectRootMappingsFromProjectConfigurations = exports.hashWithWorkspaceContext = exports.hashObject = exports.splitByColons = exports.readModulePackageJson = exports.stripIndent = exports.sortObjectByKeys = exports.combineOptionsForExecutor = exports.splitTarget = exports.retrieveProjectConfigurationsWithAngularProjects = exports.calculateDefaultProjectName = exports.readNxJsonFromDisk = exports.getExecutorInformation = exports.createTempNpmDirectory = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
4
5
|
/**
|
5
6
|
* Note to developers: STOP! These exports are available via requireNx in @nx/devkit.
|
6
7
|
*
|
@@ -35,5 +36,10 @@ Object.defineProperty(exports, "hashWithWorkspaceContext", { enumerable: true, g
|
|
35
36
|
var find_project_for_path_1 = require("./project-graph/utils/find-project-for-path");
|
36
37
|
Object.defineProperty(exports, "createProjectRootMappingsFromProjectConfigurations", { enumerable: true, get: function () { return find_project_for_path_1.createProjectRootMappingsFromProjectConfigurations; } });
|
37
38
|
Object.defineProperty(exports, "findProjectForPath", { enumerable: true, get: function () { return find_project_for_path_1.findProjectForPath; } });
|
39
|
+
var retrieve_workspace_files_2 = require("./project-graph/utils/retrieve-workspace-files");
|
40
|
+
Object.defineProperty(exports, "retrieveProjectConfigurations", { enumerable: true, get: function () { return retrieve_workspace_files_2.retrieveProjectConfigurations; } });
|
41
|
+
var internal_api_1 = require("./project-graph/plugins/internal-api");
|
42
|
+
Object.defineProperty(exports, "LoadedNxPlugin", { enumerable: true, get: function () { return internal_api_1.LoadedNxPlugin; } });
|
43
|
+
tslib_1.__exportStar(require("./project-graph/error-types"), exports);
|
38
44
|
var register_1 = require("./plugins/js/utils/register");
|
39
45
|
Object.defineProperty(exports, "registerTsProject", { enumerable: true, get: function () { return register_1.registerTsProject; } });
|
@@ -1,9 +1,20 @@
|
|
1
1
|
import { CreateNodesResultWithContext } from './plugins/internal-api';
|
2
2
|
import { ConfigurationResult } from './utils/project-configuration-utils';
|
3
|
+
import { ProjectConfiguration } from '../config/workspace-json-project-json';
|
4
|
+
export declare class ProjectsWithConflictingNamesError extends Error {
|
5
|
+
projects: Record<string, ProjectConfiguration>;
|
6
|
+
constructor(conflicts: Map<string, string[]>, projects: Record<string, ProjectConfiguration>);
|
7
|
+
}
|
8
|
+
export declare function isProjectsWithConflictingNamesError(e: unknown): e is ProjectsWithConflictingNamesError;
|
9
|
+
export declare class ProjectsWithNoNameError extends Error {
|
10
|
+
projects: Record<string, ProjectConfiguration>;
|
11
|
+
constructor(projectRoots: string[], projects: Record<string, ProjectConfiguration>);
|
12
|
+
}
|
13
|
+
export declare function isProjectsWithNoNameError(e: unknown): e is ProjectsWithNoNameError;
|
3
14
|
export declare class ProjectConfigurationsError extends Error {
|
4
|
-
readonly errors: Array<MergeNodesError | CreateNodesError>;
|
15
|
+
readonly errors: Array<MergeNodesError | CreateNodesError | ProjectsWithNoNameError | ProjectsWithConflictingNamesError>;
|
5
16
|
readonly partialProjectConfigurationsResult: ConfigurationResult;
|
6
|
-
constructor(errors: Array<MergeNodesError | CreateNodesError>, partialProjectConfigurationsResult: ConfigurationResult);
|
17
|
+
constructor(errors: Array<MergeNodesError | CreateNodesError | ProjectsWithNoNameError | ProjectsWithConflictingNamesError>, partialProjectConfigurationsResult: ConfigurationResult);
|
7
18
|
}
|
8
19
|
export declare class CreateNodesError extends Error {
|
9
20
|
file: string;
|
@@ -1,6 +1,41 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.isMergeNodesError = exports.isAggregateCreateNodesError = exports.isCreateNodesError = exports.MergeNodesError = exports.AggregateCreateNodesError = exports.CreateNodesError = exports.ProjectConfigurationsError = void 0;
|
3
|
+
exports.isMergeNodesError = exports.isAggregateCreateNodesError = exports.isCreateNodesError = exports.MergeNodesError = exports.AggregateCreateNodesError = exports.CreateNodesError = exports.ProjectConfigurationsError = exports.isProjectsWithNoNameError = exports.ProjectsWithNoNameError = exports.isProjectsWithConflictingNamesError = exports.ProjectsWithConflictingNamesError = void 0;
|
4
|
+
class ProjectsWithConflictingNamesError extends Error {
|
5
|
+
constructor(conflicts, projects) {
|
6
|
+
super([
|
7
|
+
`The following projects are defined in multiple locations:`,
|
8
|
+
...Array.from(conflicts.entries()).map(([project, roots]) => [`- ${project}: `, ...roots.map((r) => ` - ${r}`)].join('\n')),
|
9
|
+
'',
|
10
|
+
"To fix this, set a unique name for each project in a project.json inside the project's root. If the project does not currently have a project.json, you can create one that contains only a name.",
|
11
|
+
].join('\n'));
|
12
|
+
this.projects = projects;
|
13
|
+
this.name = this.constructor.name;
|
14
|
+
}
|
15
|
+
}
|
16
|
+
exports.ProjectsWithConflictingNamesError = ProjectsWithConflictingNamesError;
|
17
|
+
function isProjectsWithConflictingNamesError(e) {
|
18
|
+
return (e instanceof ProjectsWithConflictingNamesError ||
|
19
|
+
(typeof e === 'object' &&
|
20
|
+
'name' in e &&
|
21
|
+
e?.name === ProjectsWithConflictingNamesError.prototype.name));
|
22
|
+
}
|
23
|
+
exports.isProjectsWithConflictingNamesError = isProjectsWithConflictingNamesError;
|
24
|
+
class ProjectsWithNoNameError extends Error {
|
25
|
+
constructor(projectRoots, projects) {
|
26
|
+
super(`The projects in the following directories have no name provided:\n - ${projectRoots.join('\n - ')}`);
|
27
|
+
this.projects = projects;
|
28
|
+
this.name = this.constructor.name;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
exports.ProjectsWithNoNameError = ProjectsWithNoNameError;
|
32
|
+
function isProjectsWithNoNameError(e) {
|
33
|
+
return (e instanceof ProjectsWithNoNameError ||
|
34
|
+
(typeof e === 'object' &&
|
35
|
+
'name' in e &&
|
36
|
+
e?.name === ProjectsWithNoNameError.prototype.name));
|
37
|
+
}
|
38
|
+
exports.isProjectsWithNoNameError = isProjectsWithNoNameError;
|
4
39
|
class ProjectConfigurationsError extends Error {
|
5
40
|
constructor(errors, partialProjectConfigurationsResult) {
|
6
41
|
super('Failed to create project configurations');
|
@@ -44,22 +79,18 @@ class MergeNodesError extends Error {
|
|
44
79
|
exports.MergeNodesError = MergeNodesError;
|
45
80
|
function isCreateNodesError(e) {
|
46
81
|
return (e instanceof CreateNodesError ||
|
47
|
-
(typeof e === 'object' &&
|
48
|
-
'name' in e &&
|
49
|
-
e?.name === CreateNodesError.prototype.name));
|
82
|
+
(typeof e === 'object' && 'name' in e && e?.name === CreateNodesError.name));
|
50
83
|
}
|
51
84
|
exports.isCreateNodesError = isCreateNodesError;
|
52
85
|
function isAggregateCreateNodesError(e) {
|
53
86
|
return (e instanceof AggregateCreateNodesError ||
|
54
87
|
(typeof e === 'object' &&
|
55
88
|
'name' in e &&
|
56
|
-
e?.name === AggregateCreateNodesError.
|
89
|
+
e?.name === AggregateCreateNodesError.name));
|
57
90
|
}
|
58
91
|
exports.isAggregateCreateNodesError = isAggregateCreateNodesError;
|
59
92
|
function isMergeNodesError(e) {
|
60
93
|
return (e instanceof MergeNodesError ||
|
61
|
-
(typeof e === 'object' &&
|
62
|
-
'name' in e &&
|
63
|
-
e?.name === MergeNodesError.prototype.name));
|
94
|
+
(typeof e === 'object' && 'name' in e && e?.name === MergeNodesError.name));
|
64
95
|
}
|
65
96
|
exports.isMergeNodesError = isMergeNodesError;
|
@@ -41,6 +41,8 @@ function normalizeNxPlugin(plugin) {
|
|
41
41
|
exports.normalizeNxPlugin = normalizeNxPlugin;
|
42
42
|
async function runCreateNodesInParallel(configFiles, plugin, options, context) {
|
43
43
|
performance.mark(`${plugin.name}:createNodes - start`);
|
44
|
+
const errors = [];
|
45
|
+
const results = [];
|
44
46
|
const promises = configFiles.map((file) => {
|
45
47
|
performance.mark(`${plugin.name}:createNodes:${file} - start`);
|
46
48
|
// Result is either static or a promise, using Promise.resolve lets us
|
@@ -49,40 +51,30 @@ async function runCreateNodesInParallel(configFiles, plugin, options, context) {
|
|
49
51
|
return value
|
50
52
|
.catch((e) => {
|
51
53
|
performance.mark(`${plugin.name}:createNodes:${file} - end`);
|
52
|
-
|
54
|
+
errors.push(new error_types_1.CreateNodesError({
|
53
55
|
error: e,
|
54
56
|
pluginName: plugin.name,
|
55
57
|
file,
|
56
|
-
});
|
58
|
+
}));
|
59
|
+
return null;
|
57
60
|
})
|
58
61
|
.then((r) => {
|
59
62
|
performance.mark(`${plugin.name}:createNodes:${file} - end`);
|
60
63
|
performance.measure(`${plugin.name}:createNodes:${file}`, `${plugin.name}:createNodes:${file} - start`, `${plugin.name}:createNodes:${file} - end`);
|
61
|
-
|
64
|
+
// Existing behavior is to ignore null results of
|
65
|
+
// createNodes function.
|
66
|
+
if (r) {
|
67
|
+
results.push(r);
|
68
|
+
}
|
62
69
|
});
|
63
70
|
});
|
64
|
-
|
71
|
+
await Promise.all(promises).then(() => {
|
65
72
|
performance.mark(`${plugin.name}:createNodes - end`);
|
66
73
|
performance.measure(`${plugin.name}:createNodes`, `${plugin.name}:createNodes - start`, `${plugin.name}:createNodes - end`);
|
67
|
-
return results;
|
68
74
|
});
|
69
|
-
const [errors, successful] = partition(results, (r) => r instanceof error_types_1.CreateNodesError);
|
70
75
|
if (errors.length > 0) {
|
71
|
-
throw new error_types_1.AggregateCreateNodesError(plugin.name, errors,
|
76
|
+
throw new error_types_1.AggregateCreateNodesError(plugin.name, errors, results);
|
72
77
|
}
|
73
78
|
return results;
|
74
79
|
}
|
75
80
|
exports.runCreateNodesInParallel = runCreateNodesInParallel;
|
76
|
-
function partition(arr, test) {
|
77
|
-
const pass = [];
|
78
|
-
const fail = [];
|
79
|
-
for (const item of arr) {
|
80
|
-
if (test(item)) {
|
81
|
-
pass.push(item);
|
82
|
-
}
|
83
|
-
else {
|
84
|
-
fail.push(item);
|
85
|
-
}
|
86
|
-
}
|
87
|
-
return [pass, fail];
|
88
|
-
}
|
@@ -2,7 +2,7 @@ import { ProcessDependenciesError, ProcessProjectGraphError } from './build-proj
|
|
2
2
|
import { ProjectGraph } from '../config/project-graph';
|
3
3
|
import { ProjectConfiguration, ProjectsConfigurations } from '../config/workspace-json-project-json';
|
4
4
|
import { ConfigurationSourceMaps } from './utils/project-configuration-utils';
|
5
|
-
import { CreateNodesError, MergeNodesError } from './error-types';
|
5
|
+
import { CreateNodesError, MergeNodesError, ProjectsWithNoNameError, ProjectsWithConflictingNamesError } from './error-types';
|
6
6
|
import { DaemonProjectGraphError } from '../daemon/daemon-project-graph-error';
|
7
7
|
/**
|
8
8
|
* Synchronously reads the latest cached copy of the workspace's ProjectGraph.
|
@@ -20,7 +20,7 @@ export declare function buildProjectGraphAndSourceMapsWithoutDaemon(): Promise<{
|
|
20
20
|
}>;
|
21
21
|
export declare class ProjectGraphError extends Error {
|
22
22
|
#private;
|
23
|
-
constructor(errors: Array<CreateNodesError | MergeNodesError | ProcessDependenciesError | ProcessProjectGraphError>, partialProjectGraph: ProjectGraph, partialSourceMaps: ConfigurationSourceMaps);
|
23
|
+
constructor(errors: Array<CreateNodesError | MergeNodesError | ProjectsWithNoNameError | ProjectsWithConflictingNamesError | ProcessDependenciesError | ProcessProjectGraphError>, partialProjectGraph: ProjectGraph, partialSourceMaps: ConfigurationSourceMaps);
|
24
24
|
/**
|
25
25
|
* The daemon cannot throw errors which contain methods as they are not serializable.
|
26
26
|
*
|
@@ -34,7 +34,7 @@ export declare class ProjectGraphError extends Error {
|
|
34
34
|
*/
|
35
35
|
getPartialProjectGraph(): ProjectGraph;
|
36
36
|
getPartialSourcemaps(): ConfigurationSourceMaps;
|
37
|
-
getErrors(): (CreateNodesError | ProcessDependenciesError | ProcessProjectGraphError)[];
|
37
|
+
getErrors(): (ProjectsWithConflictingNamesError | ProjectsWithNoNameError | MergeNodesError | CreateNodesError | ProcessDependenciesError | ProcessProjectGraphError)[];
|
38
38
|
}
|
39
39
|
/**
|
40
40
|
* Computes and returns a ProjectGraph.
|
@@ -291,7 +291,20 @@ plugins) {
|
|
291
291
|
}
|
292
292
|
Object.assign(externalNodes, pluginExternalNodes);
|
293
293
|
}
|
294
|
-
|
294
|
+
let projects;
|
295
|
+
try {
|
296
|
+
projects = readProjectConfigurationsFromRootMap(projectRootMap);
|
297
|
+
}
|
298
|
+
catch (e) {
|
299
|
+
if ((0, error_types_1.isProjectsWithNoNameError)(e) ||
|
300
|
+
(0, error_types_1.isProjectsWithConflictingNamesError)(e)) {
|
301
|
+
projects = e.projects;
|
302
|
+
errors.push(e);
|
303
|
+
}
|
304
|
+
else {
|
305
|
+
throw e;
|
306
|
+
}
|
307
|
+
}
|
295
308
|
const rootMap = createRootMap(projectRootMap);
|
296
309
|
perf_hooks_1.performance.mark('createNodes:merge - end');
|
297
310
|
perf_hooks_1.performance.measure('createNodes:merge', 'createNodes:merge - start', 'createNodes:merge - end');
|
@@ -321,7 +334,8 @@ function readProjectConfigurationsFromRootMap(projectRootMap) {
|
|
321
334
|
// If there are projects that have the same name, that is an error.
|
322
335
|
// This object tracks name -> (all roots of projects with that name)
|
323
336
|
// to provide better error messaging.
|
324
|
-
const
|
337
|
+
const conflicts = new Map();
|
338
|
+
const projectRootsWithNoName = [];
|
325
339
|
for (const [root, configuration] of projectRootMap.entries()) {
|
326
340
|
// We're setting `// targets` as a comment `targets` is empty due to Project Crystal.
|
327
341
|
// Strip it before returning configuration for usage.
|
@@ -333,27 +347,26 @@ function readProjectConfigurationsFromRootMap(projectRootMap) {
|
|
333
347
|
configuration.name = name;
|
334
348
|
}
|
335
349
|
catch {
|
336
|
-
|
350
|
+
projectRootsWithNoName.push(root);
|
337
351
|
}
|
338
352
|
}
|
339
353
|
if (configuration.name in projects) {
|
340
|
-
let rootErrors =
|
354
|
+
let rootErrors = conflicts.get(configuration.name) ?? [
|
341
355
|
projects[configuration.name].root,
|
342
356
|
];
|
343
357
|
rootErrors.push(root);
|
344
|
-
|
358
|
+
conflicts.set(configuration.name, rootErrors);
|
359
|
+
projects[configuration.name] = configuration;
|
345
360
|
}
|
346
361
|
else {
|
347
362
|
projects[configuration.name] = configuration;
|
348
363
|
}
|
349
364
|
}
|
350
|
-
if (
|
351
|
-
throw new
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
"To fix this, set a unique name for each project in a project.json inside the project's root. If the project does not currently have a project.json, you can create one that contains only a name.",
|
356
|
-
].join('\n'));
|
365
|
+
if (conflicts.size > 0) {
|
366
|
+
throw new error_types_1.ProjectsWithConflictingNamesError(conflicts, projects);
|
367
|
+
}
|
368
|
+
if (projectRootsWithNoName.length > 0) {
|
369
|
+
throw new error_types_1.ProjectsWithNoNameError(projectRootsWithNoName, projects);
|
357
370
|
}
|
358
371
|
return projects;
|
359
372
|
}
|
@@ -9,12 +9,12 @@ import { LoadedNxPlugin } from '../plugins/internal-api';
|
|
9
9
|
* @param nxJson
|
10
10
|
*/
|
11
11
|
export declare function retrieveWorkspaceFiles(workspaceRoot: string, projectRootMap: Record<string, string>): Promise<{
|
12
|
-
allWorkspaceFiles: import("
|
12
|
+
allWorkspaceFiles: import("../file-utils").FileData[];
|
13
13
|
fileMap: {
|
14
14
|
projectFileMap: ProjectFiles;
|
15
|
-
nonProjectFiles: import("
|
15
|
+
nonProjectFiles: import("../../native").FileData[];
|
16
16
|
};
|
17
|
-
rustReferences: import("
|
17
|
+
rustReferences: import("../../native").NxWorkspaceFilesExternals;
|
18
18
|
}>;
|
19
19
|
/**
|
20
20
|
* Walk through the workspace and return `ProjectConfigurations`. Only use this if the projectFileMap is not needed.
|
@@ -36,9 +36,10 @@ exports.retrieveWorkspaceFiles = retrieveWorkspaceFiles;
|
|
36
36
|
/**
|
37
37
|
* Walk through the workspace and return `ProjectConfigurations`. Only use this if the projectFileMap is not needed.
|
38
38
|
*/
|
39
|
-
|
40
|
-
const
|
41
|
-
|
39
|
+
function retrieveProjectConfigurations(plugins, workspaceRoot, nxJson) {
|
40
|
+
const globPatterns = configurationGlobs(plugins);
|
41
|
+
const workspaceFiles = (0, workspace_context_1.globWithWorkspaceContext)(workspaceRoot, globPatterns);
|
42
|
+
return (0, project_configuration_utils_1.createProjectConfigurations)(workspaceRoot, nxJson, workspaceFiles, plugins);
|
42
43
|
}
|
43
44
|
exports.retrieveProjectConfigurations = retrieveProjectConfigurations;
|
44
45
|
async function retrieveProjectConfigurationsWithAngularProjects(workspaceRoot, nxJson) {
|
@@ -49,16 +50,11 @@ async function retrieveProjectConfigurationsWithAngularProjects(workspaceRoot, n
|
|
49
50
|
pluginsToLoad.push((0, path_1.join)(__dirname, '../../adapter/angular-json'));
|
50
51
|
}
|
51
52
|
const [plugins, cleanup] = await (0, internal_api_1.loadNxPlugins)(nxJson?.plugins ?? [], workspaceRoot);
|
52
|
-
const res =
|
53
|
+
const res = retrieveProjectConfigurations(plugins, workspaceRoot, nxJson);
|
53
54
|
cleanup();
|
54
55
|
return res;
|
55
56
|
}
|
56
57
|
exports.retrieveProjectConfigurationsWithAngularProjects = retrieveProjectConfigurationsWithAngularProjects;
|
57
|
-
function _retrieveProjectConfigurations(workspaceRoot, nxJson, plugins) {
|
58
|
-
const globPatterns = configurationGlobs(plugins);
|
59
|
-
const workspaceFiles = (0, workspace_context_1.globWithWorkspaceContext)(workspaceRoot, globPatterns);
|
60
|
-
return (0, project_configuration_utils_1.createProjectConfigurations)(workspaceRoot, nxJson, workspaceFiles, plugins);
|
61
|
-
}
|
62
58
|
function retrieveProjectConfigurationPaths(root, plugins) {
|
63
59
|
const projectGlobPatterns = configurationGlobs(plugins);
|
64
60
|
return (0, workspace_context_1.globWithWorkspaceContext)(root, projectGlobPatterns);
|