@nrwl/workspace 15.2.1 → 15.3.0-beta.0

Sign up to get free protection for your applications and to get access to all the features.
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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"}