@nrwl/workspace 15.2.0 → 15.3.0-beta.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/index.d.ts +2 -1
  3. package/package.json +30 -30
  4. package/presets/npm.json +0 -3
  5. package/src/generators/ci-workflow/ci-workflow.d.ts +1 -1
  6. package/src/generators/ci-workflow/ci-workflow.js +13 -0
  7. package/src/generators/ci-workflow/ci-workflow.js.map +1 -1
  8. package/src/generators/ci-workflow/files/bitbucket-pipelines/bitbucket-pipelines.yml__tmpl__ +37 -0
  9. package/src/generators/ci-workflow/schema.json +3 -2
  10. package/src/generators/move/lib/update-imports.js +3 -3
  11. package/src/generators/move/lib/update-imports.js.map +1 -1
  12. package/src/generators/new/files-readme/README.md.template +21 -0
  13. package/src/generators/new/files-root-app/__dot__vscode/extensions.json__tmpl__ +2 -4
  14. package/src/generators/new/files-root-app/package.json__tmpl__ +3 -3
  15. package/src/generators/new/generate-preset.js +1 -0
  16. package/src/generators/new/generate-preset.js.map +1 -1
  17. package/src/generators/new/generate-workspace-files.d.ts +1 -1
  18. package/src/generators/new/generate-workspace-files.js +44 -33
  19. package/src/generators/new/generate-workspace-files.js.map +1 -1
  20. package/src/generators/preset/preset.js +12 -0
  21. package/src/generators/preset/preset.js.map +1 -1
  22. package/src/generators/utils/presets.d.ts +1 -0
  23. package/src/generators/utils/presets.js +1 -0
  24. package/src/generators/utils/presets.js.map +1 -1
  25. package/src/utilities/ast-utils.js +10 -10
  26. package/src/utilities/generate-globs.js +6 -1
  27. package/src/utilities/generate-globs.js.map +1 -1
  28. package/src/utilities/typescript/find-nodes.d.ts +5 -2
  29. package/src/utilities/typescript/find-nodes.js +7 -25
  30. package/src/utilities/typescript/find-nodes.js.map +1 -1
  31. package/src/utilities/typescript.js +1 -1
  32. package/src/utilities/typescript.js.map +1 -1
  33. package/src/utils/ast-utils.js +12 -12
  34. package/src/utils/ast-utils.js.map +1 -1
  35. package/src/utils/rules/rename-package-imports.js +2 -1
  36. package/src/utils/rules/rename-package-imports.js.map +1 -1
  37. package/src/generators/workspace/schema.json +0 -71
  38. package/src/utilities/create-package-json.d.ts +0 -10
  39. package/src/utilities/create-package-json.js +0 -90
  40. package/src/utilities/create-package-json.js.map +0 -1
  41. package/src/utils/graph-utils.d.ts +0 -5
  42. package/src/utils/graph-utils.js +0 -116
  43. package/src/utils/graph-utils.js.map +0 -1
  44. package/src/utils/runtime-lint-utils.d.ts +0 -80
  45. package/src/utils/runtime-lint-utils.js +0 -309
  46. package/src/utils/runtime-lint-utils.js.map +0 -1
@@ -1,116 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findFilesInCircularPath = exports.checkCircularPath = exports.pathExists = exports.getPath = void 0;
4
- const reach = {
5
- graph: null,
6
- matrix: null,
7
- adjList: null,
8
- };
9
- function buildMatrix(graph) {
10
- const nodes = Object.keys(graph.nodes);
11
- const nodesLength = nodes.length;
12
- const adjList = {};
13
- const matrix = {};
14
- // create matrix value set
15
- for (let i = 0; i < nodesLength; i++) {
16
- const v = nodes[i];
17
- adjList[v] = [];
18
- // meeroslav: turns out this is 10x faster than spreading the pre-generated initMatrixValues
19
- matrix[v] = {};
20
- }
21
- const projectsWithDependencies = Object.keys(graph.dependencies);
22
- for (let i = 0; i < projectsWithDependencies.length; i++) {
23
- const dependencies = graph.dependencies[projectsWithDependencies[i]];
24
- for (let j = 0; j < dependencies.length; j++) {
25
- const dependency = dependencies[j];
26
- if (graph.nodes[dependency.target]) {
27
- adjList[dependency.source].push(dependency.target);
28
- }
29
- }
30
- }
31
- const traverse = (s, v) => {
32
- matrix[s][v] = true;
33
- const adjListLength = adjList[v].length;
34
- for (let i = 0; i < adjListLength; i++) {
35
- const adj = adjList[v][i];
36
- if (!matrix[s][adj]) {
37
- traverse(s, adj);
38
- }
39
- }
40
- };
41
- for (let i = 0; i < nodesLength; i++) {
42
- const v = nodes[i];
43
- traverse(v, v);
44
- }
45
- return {
46
- matrix,
47
- adjList,
48
- };
49
- }
50
- function getPath(graph, sourceProjectName, targetProjectName) {
51
- if (sourceProjectName === targetProjectName)
52
- return [];
53
- if (reach.graph !== graph) {
54
- const { matrix, adjList } = buildMatrix(graph);
55
- reach.graph = graph;
56
- reach.matrix = matrix;
57
- reach.adjList = adjList;
58
- }
59
- const adjList = reach.adjList;
60
- let path = [];
61
- const queue = [[sourceProjectName, path]];
62
- const visited = [sourceProjectName];
63
- while (queue.length > 0) {
64
- const [current, p] = queue.pop();
65
- path = [...p, current];
66
- if (current === targetProjectName)
67
- break;
68
- if (!adjList[current])
69
- break;
70
- adjList[current]
71
- .filter((adj) => visited.indexOf(adj) === -1)
72
- .filter((adj) => reach.matrix[adj][targetProjectName])
73
- .forEach((adj) => {
74
- visited.push(adj);
75
- queue.push([adj, [...path]]);
76
- });
77
- }
78
- if (path.length > 1) {
79
- return path.map((n) => graph.nodes[n]);
80
- }
81
- else {
82
- return [];
83
- }
84
- }
85
- exports.getPath = getPath;
86
- function pathExists(graph, sourceProjectName, targetProjectName) {
87
- if (sourceProjectName === targetProjectName)
88
- return true;
89
- if (reach.graph !== graph) {
90
- const { matrix, adjList } = buildMatrix(graph);
91
- reach.graph = graph;
92
- reach.matrix = matrix;
93
- reach.adjList = adjList;
94
- }
95
- return !!reach.matrix[sourceProjectName][targetProjectName];
96
- }
97
- exports.pathExists = pathExists;
98
- function checkCircularPath(graph, sourceProject, targetProject) {
99
- if (!graph.nodes[targetProject.name])
100
- return [];
101
- return getPath(graph, targetProject.name, sourceProject.name);
102
- }
103
- exports.checkCircularPath = checkCircularPath;
104
- function findFilesInCircularPath(circularPath) {
105
- const filePathChain = [];
106
- for (let i = 0; i < circularPath.length - 1; i++) {
107
- const next = circularPath[i + 1].name;
108
- const files = circularPath[i].data.files;
109
- filePathChain.push(Object.keys(files)
110
- .filter((key) => files[key].deps && files[key].deps.indexOf(next) !== -1)
111
- .map((key) => files[key].file));
112
- }
113
- return filePathChain;
114
- }
115
- exports.findFilesInCircularPath = findFilesInCircularPath;
116
- //# sourceMappingURL=graph-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-utils.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/graph-utils.ts"],"names":[],"mappings":"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"}
@@ -1,80 +0,0 @@
1
- import { ProjectGraph, ProjectGraphDependency, ProjectGraphProjectNode, ProjectGraphExternalNode } from '@nrwl/devkit';
2
- import { TargetProjectLocator } from 'nx/src/utils/target-project-locator';
3
- export declare type MappedProjectGraph<T = any> = ProjectGraph<T> & {
4
- allFiles: Record<string, string>;
5
- };
6
- export declare type Deps = {
7
- [projectName: string]: ProjectGraphDependency[];
8
- };
9
- export declare type DepConstraint = {
10
- sourceTag: string;
11
- onlyDependOnLibsWithTags?: string[];
12
- notDependOnLibsWithTags?: string[];
13
- bannedExternalImports?: string[];
14
- };
15
- export declare function stringifyTags(tags: string[]): string;
16
- export declare function hasNoneOfTheseTags(proj: ProjectGraphProjectNode, tags: string[]): boolean;
17
- /**
18
- * Check if any of the given tags is included in the project
19
- * @param proj ProjectGraphProjectNode
20
- * @param tags
21
- * @returns
22
- */
23
- export declare function findDependenciesWithTags(targetProject: ProjectGraphProjectNode, tags: string[], graph: ProjectGraph): ProjectGraphProjectNode[][];
24
- export declare function removeExt(file: string): string;
25
- export declare function matchImportWithWildcard(allowableImport: string, extractedImport: string): boolean;
26
- export declare function isRelative(s: string): boolean;
27
- export declare function getTargetProjectBasedOnRelativeImport(imp: string, projectPath: string, projectGraph: MappedProjectGraph, sourceFilePath: string): ProjectGraphProjectNode<any> | undefined;
28
- export declare function findProjectUsingFile<T>(projectGraph: MappedProjectGraph<T>, file: string): ProjectGraphProjectNode;
29
- export declare function findSourceProject(projectGraph: MappedProjectGraph, sourceFilePath: string): ProjectGraphProjectNode<any>;
30
- export declare function findTargetProject(projectGraph: MappedProjectGraph, targetFile: string): ProjectGraphProjectNode<any>;
31
- export declare function isAbsoluteImportIntoAnotherProject(imp: string, workspaceLayout?: {
32
- libsDir: string;
33
- appsDir: string;
34
- }): boolean;
35
- export declare function findProjectUsingImport(projectGraph: MappedProjectGraph, targetProjectLocator: TargetProjectLocator, filePath: string, imp: string): ProjectGraphProjectNode | ProjectGraphExternalNode;
36
- export declare function findConstraintsFor(depConstraints: DepConstraint[], sourceProject: ProjectGraphProjectNode): DepConstraint[];
37
- export declare function onlyLoadChildren(graph: ProjectGraph, sourceProjectName: string, targetProjectName: string, visited: string[]): any;
38
- export declare function getSourceFilePath(sourceFileName: string, projectPath: string): string;
39
- export declare function hasBannedImport(source: ProjectGraphProjectNode, target: ProjectGraphExternalNode, depConstraints: DepConstraint[]): DepConstraint | undefined;
40
- /**
41
- * Find all unique (transitive) external dependencies of given project
42
- * @param graph
43
- * @param source
44
- * @returns
45
- */
46
- export declare function findTransitiveExternalDependencies(graph: ProjectGraph, source: ProjectGraphProjectNode): ProjectGraphDependency[];
47
- /**
48
- * Check if
49
- * @param externalDependencies
50
- * @param graph
51
- * @param depConstraint
52
- * @returns
53
- */
54
- export declare function hasBannedDependencies(externalDependencies: ProjectGraphDependency[], graph: ProjectGraph, depConstraint: DepConstraint): Array<[ProjectGraphExternalNode, ProjectGraphProjectNode, DepConstraint]> | undefined;
55
- export declare function isDirectDependency(target: ProjectGraphExternalNode): boolean;
56
- /**
57
- * Verifies whether the given node has an architect builder attached
58
- * @param projectGraph the node to verify
59
- */
60
- export declare function hasBuildExecutor(projectGraph: ProjectGraphProjectNode): boolean;
61
- export declare function mapProjectGraphFiles<T>(projectGraph: ProjectGraph<T>): MappedProjectGraph | null;
62
- export declare function isTerminalRun(): boolean;
63
- /**
64
- * Takes an array of imports and tries to group them, so rather than having
65
- * `import { A } from './some-location'` and `import { B } from './some-location'` you get
66
- * `import { A, B } from './some-location'`
67
- * @param importsToRemap
68
- * @returns
69
- */
70
- export declare function groupImports(importsToRemap: {
71
- member: string;
72
- importPath: string;
73
- }[]): string;
74
- /**
75
- * Checks if import points to a secondary entry point in Angular project
76
- * @param targetProjectLocator
77
- * @param importExpr
78
- * @returns
79
- */
80
- export declare function isAngularSecondaryEntrypoint(targetProjectLocator: TargetProjectLocator, importExpr: string): boolean;
@@ -1,309 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAngularSecondaryEntrypoint = exports.groupImports = exports.isTerminalRun = exports.mapProjectGraphFiles = exports.hasBuildExecutor = exports.isDirectDependency = exports.hasBannedDependencies = exports.findTransitiveExternalDependencies = exports.hasBannedImport = exports.getSourceFilePath = exports.onlyLoadChildren = exports.findConstraintsFor = exports.findProjectUsingImport = exports.isAbsoluteImportIntoAnotherProject = exports.findTargetProject = exports.findSourceProject = exports.findProjectUsingFile = exports.getTargetProjectBasedOnRelativeImport = exports.isRelative = exports.matchImportWithWildcard = exports.removeExt = exports.findDependenciesWithTags = exports.hasNoneOfTheseTags = exports.stringifyTags = void 0;
4
- const path = require("path");
5
- const devkit_1 = require("@nrwl/devkit");
6
- const path_1 = require("path");
7
- const graph_utils_1 = require("./graph-utils");
8
- const fs_1 = require("fs");
9
- const file_utils_1 = require("nx/src/project-graph/file-utils");
10
- function stringifyTags(tags) {
11
- return tags.map((t) => `"${t}"`).join(', ');
12
- }
13
- exports.stringifyTags = stringifyTags;
14
- function hasNoneOfTheseTags(proj, tags) {
15
- return tags.filter((tag) => hasTag(proj, tag)).length === 0;
16
- }
17
- exports.hasNoneOfTheseTags = hasNoneOfTheseTags;
18
- /**
19
- * Check if any of the given tags is included in the project
20
- * @param proj ProjectGraphProjectNode
21
- * @param tags
22
- * @returns
23
- */
24
- function findDependenciesWithTags(targetProject, tags, graph) {
25
- // find all reachable projects that have one of the tags and
26
- // are reacheable from the targetProject (including self)
27
- const allReachableProjects = Object.keys(graph.nodes).filter((projectName) => (0, graph_utils_1.pathExists)(graph, targetProject.name, projectName) &&
28
- tags.some((tag) => hasTag(graph.nodes[projectName], tag)));
29
- // return path from targetProject to reachable project
30
- return allReachableProjects.map((project) => targetProject.name === project
31
- ? [targetProject]
32
- : (0, graph_utils_1.getPath)(graph, targetProject.name, project));
33
- }
34
- exports.findDependenciesWithTags = findDependenciesWithTags;
35
- function hasTag(proj, tag) {
36
- return tag === '*' || (proj.data.tags || []).indexOf(tag) > -1;
37
- }
38
- function removeExt(file) {
39
- return file.replace(/(?<!(^|\/))\.[^/.]+$/, '');
40
- }
41
- exports.removeExt = removeExt;
42
- function matchImportWithWildcard(
43
- // This may or may not contain wildcards ("*")
44
- allowableImport, extractedImport) {
45
- if (allowableImport.endsWith('/**')) {
46
- const prefix = allowableImport.substring(0, allowableImport.length - 2);
47
- return extractedImport.startsWith(prefix);
48
- }
49
- else if (allowableImport.endsWith('/*')) {
50
- const prefix = allowableImport.substring(0, allowableImport.length - 1);
51
- if (!extractedImport.startsWith(prefix))
52
- return false;
53
- return extractedImport.substring(prefix.length).indexOf('/') === -1;
54
- }
55
- else if (allowableImport.indexOf('/**/') > -1) {
56
- const [prefix, suffix] = allowableImport.split('/**/');
57
- return (extractedImport.startsWith(prefix) && extractedImport.endsWith(suffix));
58
- }
59
- else {
60
- return new RegExp(allowableImport).test(extractedImport);
61
- }
62
- }
63
- exports.matchImportWithWildcard = matchImportWithWildcard;
64
- function isRelative(s) {
65
- return s.startsWith('.');
66
- }
67
- exports.isRelative = isRelative;
68
- function getTargetProjectBasedOnRelativeImport(imp, projectPath, projectGraph, sourceFilePath) {
69
- if (!isRelative(imp)) {
70
- return undefined;
71
- }
72
- const sourceDir = path.join(projectPath, path.dirname(sourceFilePath));
73
- const targetFile = (0, devkit_1.normalizePath)(path.resolve(sourceDir, imp)).substring(projectPath.length + 1);
74
- return findTargetProject(projectGraph, targetFile);
75
- }
76
- exports.getTargetProjectBasedOnRelativeImport = getTargetProjectBasedOnRelativeImport;
77
- function findProjectUsingFile(projectGraph, file) {
78
- return projectGraph.nodes[projectGraph.allFiles[file]];
79
- }
80
- exports.findProjectUsingFile = findProjectUsingFile;
81
- function findSourceProject(projectGraph, sourceFilePath) {
82
- const targetFile = removeExt(sourceFilePath);
83
- return findProjectUsingFile(projectGraph, targetFile);
84
- }
85
- exports.findSourceProject = findSourceProject;
86
- function findTargetProject(projectGraph, targetFile) {
87
- let targetProject = findProjectUsingFile(projectGraph, targetFile);
88
- if (!targetProject) {
89
- targetProject = findProjectUsingFile(projectGraph, (0, devkit_1.normalizePath)(path.join(targetFile, 'index')));
90
- }
91
- if (!targetProject) {
92
- targetProject = findProjectUsingFile(projectGraph, (0, devkit_1.normalizePath)(path.join(targetFile, 'src', 'index')));
93
- }
94
- return targetProject;
95
- }
96
- exports.findTargetProject = findTargetProject;
97
- function isAbsoluteImportIntoAnotherProject(imp, workspaceLayout = { libsDir: 'libs', appsDir: 'apps' }) {
98
- return (imp.startsWith(`${workspaceLayout.libsDir}/`) ||
99
- imp.startsWith(`/${workspaceLayout.libsDir}/`) ||
100
- imp.startsWith(`${workspaceLayout.appsDir}/`) ||
101
- imp.startsWith(`/${workspaceLayout.appsDir}/`));
102
- }
103
- exports.isAbsoluteImportIntoAnotherProject = isAbsoluteImportIntoAnotherProject;
104
- function findProjectUsingImport(projectGraph, targetProjectLocator, filePath, imp) {
105
- var _a;
106
- const target = targetProjectLocator.findProjectWithImport(imp, filePath);
107
- return projectGraph.nodes[target] || ((_a = projectGraph.externalNodes) === null || _a === void 0 ? void 0 : _a[target]);
108
- }
109
- exports.findProjectUsingImport = findProjectUsingImport;
110
- function findConstraintsFor(depConstraints, sourceProject) {
111
- return depConstraints.filter((f) => hasTag(sourceProject, f.sourceTag));
112
- }
113
- exports.findConstraintsFor = findConstraintsFor;
114
- function onlyLoadChildren(graph, sourceProjectName, targetProjectName, visited) {
115
- if (visited.indexOf(sourceProjectName) > -1)
116
- return false;
117
- return ((graph.dependencies[sourceProjectName] || []).filter((d) => {
118
- if (d.type !== devkit_1.DependencyType.dynamic)
119
- return false;
120
- if (d.target === targetProjectName)
121
- return true;
122
- return onlyLoadChildren(graph, d.target, targetProjectName, [
123
- ...visited,
124
- sourceProjectName,
125
- ]);
126
- }).length > 0);
127
- }
128
- exports.onlyLoadChildren = onlyLoadChildren;
129
- function getSourceFilePath(sourceFileName, projectPath) {
130
- const relativePath = sourceFileName.slice(projectPath.length + 1);
131
- return (0, devkit_1.normalizePath)(relativePath);
132
- }
133
- exports.getSourceFilePath = getSourceFilePath;
134
- /**
135
- * Find constraint (if any) that explicitly banns the given target npm project
136
- * @param externalProject
137
- * @param depConstraints
138
- * @returns
139
- */
140
- function isConstraintBanningProject(externalProject, constraint) {
141
- return constraint.bannedExternalImports.some((importDefinition) => parseImportWildcards(importDefinition).test(externalProject.data.packageName));
142
- }
143
- function hasBannedImport(source, target, depConstraints) {
144
- // return those constraints that match source project and have `bannedExternalImports` defined
145
- depConstraints = depConstraints.filter((c) => (source.data.tags || []).includes(c.sourceTag) &&
146
- c.bannedExternalImports &&
147
- c.bannedExternalImports.length);
148
- return depConstraints.find((constraint) => isConstraintBanningProject(target, constraint));
149
- }
150
- exports.hasBannedImport = hasBannedImport;
151
- /**
152
- * Find all unique (transitive) external dependencies of given project
153
- * @param graph
154
- * @param source
155
- * @returns
156
- */
157
- function findTransitiveExternalDependencies(graph, source) {
158
- if (!graph.externalNodes) {
159
- return [];
160
- }
161
- const allReachableProjects = [];
162
- const allProjects = Object.keys(graph.nodes);
163
- for (let i = 0; i < allProjects.length; i++) {
164
- if ((0, graph_utils_1.pathExists)(graph, source.name, allProjects[i])) {
165
- allReachableProjects.push(allProjects[i]);
166
- }
167
- }
168
- const externalDependencies = [];
169
- for (let i = 0; i < allReachableProjects.length; i++) {
170
- const dependencies = graph.dependencies[allReachableProjects[i]];
171
- if (dependencies) {
172
- for (let d = 0; d < dependencies.length; d++) {
173
- const dependency = dependencies[d];
174
- if (graph.externalNodes[dependency.target]) {
175
- externalDependencies.push(dependency);
176
- }
177
- }
178
- }
179
- }
180
- return externalDependencies;
181
- }
182
- exports.findTransitiveExternalDependencies = findTransitiveExternalDependencies;
183
- /**
184
- * Check if
185
- * @param externalDependencies
186
- * @param graph
187
- * @param depConstraint
188
- * @returns
189
- */
190
- function hasBannedDependencies(externalDependencies, graph, depConstraint) {
191
- return externalDependencies
192
- .filter((dependency) => isConstraintBanningProject(graph.externalNodes[dependency.target], depConstraint))
193
- .map((dep) => [
194
- graph.externalNodes[dep.target],
195
- graph.nodes[dep.source],
196
- depConstraint,
197
- ]);
198
- }
199
- exports.hasBannedDependencies = hasBannedDependencies;
200
- function isDirectDependency(target) {
201
- const fileName = 'package.json';
202
- const content = (0, file_utils_1.readFileIfExisting)((0, path_1.join)(devkit_1.workspaceRoot, fileName));
203
- if (content) {
204
- const { dependencies, devDependencies, peerDependencies } = (0, devkit_1.parseJson)(content);
205
- if (dependencies && dependencies[target.data.packageName]) {
206
- return true;
207
- }
208
- if (peerDependencies && peerDependencies[target.data.packageName]) {
209
- return true;
210
- }
211
- if (devDependencies && devDependencies[target.data.packageName]) {
212
- return true;
213
- }
214
- return false;
215
- }
216
- return true;
217
- }
218
- exports.isDirectDependency = isDirectDependency;
219
- /**
220
- * Maps import with wildcards to regex pattern
221
- * @param importDefinition
222
- * @returns
223
- */
224
- function parseImportWildcards(importDefinition) {
225
- // we replace all instances of `*`, `**..*` and `.*` with `.*`
226
- const mappedWildcards = importDefinition.split(/(?:\.\*)|\*+/).join('.*');
227
- return new RegExp(`^${new RegExp(mappedWildcards).source}$`);
228
- }
229
- /**
230
- * Verifies whether the given node has an architect builder attached
231
- * @param projectGraph the node to verify
232
- */
233
- function hasBuildExecutor(projectGraph) {
234
- return (
235
- // can the architect not be defined? real use case?
236
- projectGraph.data.targets &&
237
- projectGraph.data.targets.build &&
238
- projectGraph.data.targets.build.executor !== '');
239
- }
240
- exports.hasBuildExecutor = hasBuildExecutor;
241
- function mapProjectGraphFiles(projectGraph) {
242
- if (!projectGraph) {
243
- return null;
244
- }
245
- const allFiles = {};
246
- Object.entries(projectGraph.nodes).forEach(([name, node]) => {
247
- node.data.files.forEach(({ file }) => {
248
- const fileName = removeExt(file);
249
- allFiles[fileName] = name;
250
- });
251
- });
252
- return Object.assign(Object.assign({}, projectGraph), { allFiles });
253
- }
254
- exports.mapProjectGraphFiles = mapProjectGraphFiles;
255
- const ESLINT_REGEX = /node_modules.*[\/\\]eslint$/;
256
- const JEST_REGEX = /node_modules\/.bin\/jest$/; // when we run unit tests in jest
257
- const NRWL_CLI_REGEX = /nx[\/\\]bin[\/\\]run-executor\.js$/;
258
- function isTerminalRun() {
259
- return (process.argv.length > 1 &&
260
- (!!process.argv[1].match(NRWL_CLI_REGEX) ||
261
- !!process.argv[1].match(JEST_REGEX) ||
262
- !!process.argv[1].match(ESLINT_REGEX)));
263
- }
264
- exports.isTerminalRun = isTerminalRun;
265
- /**
266
- * Takes an array of imports and tries to group them, so rather than having
267
- * `import { A } from './some-location'` and `import { B } from './some-location'` you get
268
- * `import { A, B } from './some-location'`
269
- * @param importsToRemap
270
- * @returns
271
- */
272
- function groupImports(importsToRemap) {
273
- const importsToRemapGrouped = importsToRemap.reduce((acc, curr) => {
274
- const existing = acc.find((i) => i.importPath === curr.importPath && i.member !== curr.member);
275
- if (existing) {
276
- if (existing.member) {
277
- existing.member += `, ${curr.member}`;
278
- }
279
- }
280
- else {
281
- acc.push({
282
- importPath: curr.importPath,
283
- member: curr.member,
284
- });
285
- }
286
- return acc;
287
- }, []);
288
- return importsToRemapGrouped
289
- .map((entry) => `import { ${entry.member} } from '${entry.importPath}';`)
290
- .join('\n');
291
- }
292
- exports.groupImports = groupImports;
293
- /**
294
- * Checks if import points to a secondary entry point in Angular project
295
- * @param targetProjectLocator
296
- * @param importExpr
297
- * @returns
298
- */
299
- function isAngularSecondaryEntrypoint(targetProjectLocator, importExpr) {
300
- const targetFiles = targetProjectLocator.findPaths(importExpr);
301
- return (targetFiles &&
302
- targetFiles.some((file) =>
303
- // The `ng-packagr` defaults to the `src/public_api.ts` entry file to
304
- // the public API if the `lib.entryFile` is not specified explicitly.
305
- (file.endsWith('src/public_api.ts') || file.endsWith('src/index.ts')) &&
306
- (0, fs_1.existsSync)((0, devkit_1.joinPathFragments)(devkit_1.workspaceRoot, file, '../../', 'ng-package.json'))));
307
- }
308
- exports.isAngularSecondaryEntrypoint = isAngularSecondaryEntrypoint;
309
- //# sourceMappingURL=runtime-lint-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-lint-utils.js","sourceRoot":"","sources":["../../../../../packages/workspace/src/utils/runtime-lint-utils.ts"],"names":[],"mappings":"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"}