@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.
- 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":";;;AAYA,MAAM,KAAK,GAAU;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;CACd,CAAC;AAEF,SAAS,WAAW,CAAC,KAAmB;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,0BAA0B;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChB,4FAA4F;QAC5F,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAChB;IAED,MAAM,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACjE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAClC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aACpD;SACF;KACF;IAED,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QACxC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAEpB,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACnB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAClB;SACF;IACH,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAChB;IAED,OAAO;QACL,MAAM;QACN,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CACrB,KAAmB,EACnB,iBAAyB,EACzB,iBAAyB;IAEzB,IAAI,iBAAiB,KAAK,iBAAiB;QAAE,OAAO,EAAE,CAAC;IAEvD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;QACzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;KACzB;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAE9B,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,MAAM,KAAK,GAA8B,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAa,CAAC,iBAAiB,CAAC,CAAC;IAE9C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAEvB,IAAI,OAAO,KAAK,iBAAiB;YAAE,MAAM;QAEzC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,MAAM;QAE7B,OAAO,CAAC,OAAO,CAAC;aACb,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;aACrD,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;KACN;IAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC,CAAC;KACnE;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AA1CD,0BA0CC;AAED,SAAgB,UAAU,CACxB,KAAmB,EACnB,iBAAyB,EACzB,iBAAyB;IAEzB,IAAI,iBAAiB,KAAK,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEzD,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE;QACzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/C,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;KACzB;IAED,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAC9D,CAAC;AAfD,gCAeC;AAED,SAAgB,iBAAiB,CAC/B,KAAmB,EACnB,aAAsC,EACtC,aAAsC;IAEtC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhD,OAAO,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AAChE,CAAC;AARD,8CAQC;AAED,SAAgB,uBAAuB,CACrC,YAAuC;IAEvC,MAAM,aAAa,GAAG,EAAE,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACtC,MAAM,KAAK,GAAe,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACrD,aAAa,CAAC,IAAI,CAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACf,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACjE;aACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CACjC,CAAC;KACH;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAlBD,0DAkBC"}
|
@@ -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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"}
|