@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.
- package/CHANGELOG.md +1 -1
- package/index.d.ts +2 -1
- package/package.json +30 -30
- package/presets/npm.json +0 -3
- package/src/generators/ci-workflow/ci-workflow.d.ts +1 -1
- package/src/generators/ci-workflow/ci-workflow.js +13 -0
- package/src/generators/ci-workflow/ci-workflow.js.map +1 -1
- package/src/generators/ci-workflow/files/bitbucket-pipelines/bitbucket-pipelines.yml__tmpl__ +37 -0
- package/src/generators/ci-workflow/schema.json +3 -2
- package/src/generators/move/lib/update-imports.js +3 -3
- package/src/generators/move/lib/update-imports.js.map +1 -1
- package/src/generators/new/files-readme/README.md.template +21 -0
- package/src/generators/new/files-root-app/__dot__vscode/extensions.json__tmpl__ +2 -4
- package/src/generators/new/files-root-app/package.json__tmpl__ +3 -3
- package/src/generators/new/generate-preset.js +1 -0
- package/src/generators/new/generate-preset.js.map +1 -1
- package/src/generators/new/generate-workspace-files.d.ts +1 -1
- package/src/generators/new/generate-workspace-files.js +44 -33
- package/src/generators/new/generate-workspace-files.js.map +1 -1
- package/src/generators/preset/preset.js +12 -0
- package/src/generators/preset/preset.js.map +1 -1
- package/src/generators/utils/presets.d.ts +1 -0
- package/src/generators/utils/presets.js +1 -0
- package/src/generators/utils/presets.js.map +1 -1
- package/src/utilities/ast-utils.js +10 -10
- package/src/utilities/generate-globs.js +6 -1
- package/src/utilities/generate-globs.js.map +1 -1
- package/src/utilities/typescript/find-nodes.d.ts +5 -2
- package/src/utilities/typescript/find-nodes.js +7 -25
- package/src/utilities/typescript/find-nodes.js.map +1 -1
- package/src/utilities/typescript.js +1 -1
- package/src/utilities/typescript.js.map +1 -1
- package/src/utils/ast-utils.js +12 -12
- package/src/utils/ast-utils.js.map +1 -1
- package/src/utils/rules/rename-package-imports.js +2 -1
- package/src/utils/rules/rename-package-imports.js.map +1 -1
- package/src/generators/workspace/schema.json +0 -71
- package/src/utilities/create-package-json.d.ts +0 -10
- package/src/utilities/create-package-json.js +0 -90
- package/src/utilities/create-package-json.js.map +0 -1
- package/src/utils/graph-utils.d.ts +0 -5
- package/src/utils/graph-utils.js +0 -116
- package/src/utils/graph-utils.js.map +0 -1
- package/src/utils/runtime-lint-utils.d.ts +0 -80
- package/src/utils/runtime-lint-utils.js +0 -309
- package/src/utils/runtime-lint-utils.js.map +0 -1
package/src/utils/graph-utils.js
DELETED
@@ -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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"}
|