@pnpm/workspace.projects-filter 1100.0.23 → 1100.0.24
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/lib/filterProjectsFromDir.js +2 -2
- package/lib/index.d.ts +12 -0
- package/lib/index.js +11 -2
- package/package.json +6 -6
|
@@ -12,11 +12,11 @@ export async function filterProjectsBySelectorObjectsFromDir(workspaceDir, proje
|
|
|
12
12
|
libc: ['current'],
|
|
13
13
|
},
|
|
14
14
|
});
|
|
15
|
-
const { allProjectsGraph, selectedProjectsGraph } = await filterProjectsBySelectorObjects(allProjects, projectSelectors, {
|
|
15
|
+
const { allProjectsGraph, selectedProjectsGraph, prodAllProjectsGraph, prodOnlySelectedProjectDirs } = await filterProjectsBySelectorObjects(allProjects, projectSelectors, {
|
|
16
16
|
linkWorkspacePackages: opts?.linkWorkspacePackages,
|
|
17
17
|
workspaceDir,
|
|
18
18
|
changedFilesIgnorePattern: opts?.changedFilesIgnorePattern,
|
|
19
19
|
});
|
|
20
|
-
return { allProjects, allProjectsGraph, selectedProjectsGraph };
|
|
20
|
+
return { allProjects, allProjectsGraph, selectedProjectsGraph, prodAllProjectsGraph, prodOnlySelectedProjectDirs };
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=filterProjectsFromDir.js.map
|
package/lib/index.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ export interface ReadProjectsResult {
|
|
|
15
15
|
allProjects: Project[];
|
|
16
16
|
allProjectsGraph: ProjectGraph<Project>;
|
|
17
17
|
selectedProjectsGraph: ProjectGraph<Project>;
|
|
18
|
+
prodAllProjectsGraph?: ProjectGraph<Project>;
|
|
19
|
+
prodOnlySelectedProjectDirs?: ProjectRootDir[];
|
|
18
20
|
}
|
|
19
21
|
export interface FilterProjectsOptions {
|
|
20
22
|
linkWorkspacePackages?: boolean;
|
|
@@ -37,6 +39,14 @@ export declare function filterProjectsFromDir(workspaceDir: string, filter: Work
|
|
|
37
39
|
export interface FilterProjectsResult<Pkg extends BaseProject> {
|
|
38
40
|
allProjectsGraph: ProjectGraph<Pkg>;
|
|
39
41
|
selectedProjectsGraph: ProjectGraph<Pkg>;
|
|
42
|
+
/**
|
|
43
|
+
* The prod-pruned full graph, set when prod-only filters (`--filter-prod`) are
|
|
44
|
+
* used. The recursive-command sorter resolves prod-only selected projects
|
|
45
|
+
* through it so transitive prod dependencies are honored without reintroducing
|
|
46
|
+
* the dev edges the filter dropped.
|
|
47
|
+
*/
|
|
48
|
+
prodAllProjectsGraph?: ProjectGraph<Pkg>;
|
|
49
|
+
prodOnlySelectedProjectDirs?: ProjectRootDir[];
|
|
40
50
|
unmatchedFilters: string[];
|
|
41
51
|
}
|
|
42
52
|
export declare function filterProjects<Pkg extends BaseProject>(projects: Pkg[], filter: WorkspaceFilter[], opts: FilterProjectsOptions): Promise<FilterProjectsResult<Pkg>>;
|
|
@@ -49,6 +59,8 @@ export declare function filterProjectsBySelectorObjects<Pkg extends BaseProject>
|
|
|
49
59
|
}): Promise<{
|
|
50
60
|
allProjectsGraph: ProjectGraph<Pkg>;
|
|
51
61
|
selectedProjectsGraph: ProjectGraph<Pkg>;
|
|
62
|
+
prodAllProjectsGraph?: ProjectGraph<Pkg>;
|
|
63
|
+
prodOnlySelectedProjectDirs?: ProjectRootDir[];
|
|
52
64
|
unmatchedFilters: string[];
|
|
53
65
|
}>;
|
|
54
66
|
export declare function filterWorkspaceProjects<Pkg extends BaseProject>(projectsGraph: ProjectGraph<Pkg>, projectSelectors: ProjectSelector[], opts: {
|
package/lib/index.js
CHANGED
|
@@ -39,21 +39,30 @@ export async function filterProjectsBySelectorObjects(projects, projectSelectors
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
let prodFilteredGraph;
|
|
42
|
+
let prodGraph;
|
|
42
43
|
if (prodProjectSelectors.length > 0) {
|
|
43
|
-
|
|
44
|
-
prodFilteredGraph = await filterWorkspaceProjects(
|
|
44
|
+
prodGraph = createProjectsGraph(projects, { ignoreDevDeps: true, linkWorkspacePackages: opts.linkWorkspacePackages }).graph;
|
|
45
|
+
prodFilteredGraph = await filterWorkspaceProjects(prodGraph, prodProjectSelectors, {
|
|
45
46
|
workspaceDir: opts.workspaceDir,
|
|
46
47
|
testPattern: opts.testPattern,
|
|
47
48
|
changedFilesIgnorePattern: opts.changedFilesIgnorePattern,
|
|
48
49
|
useGlobDirFiltering: opts.useGlobDirFiltering,
|
|
49
50
|
});
|
|
50
51
|
}
|
|
52
|
+
let prodOnlySelectedProjectDirs;
|
|
53
|
+
if (prodFilteredGraph != null) {
|
|
54
|
+
const regularSelectedProjectDirs = new Set(Object.keys(filteredGraph?.selectedProjectsGraph ?? {}));
|
|
55
|
+
prodOnlySelectedProjectDirs = Object.keys(prodFilteredGraph.selectedProjectsGraph)
|
|
56
|
+
.filter((projectDir) => !regularSelectedProjectDirs.has(projectDir));
|
|
57
|
+
}
|
|
51
58
|
return {
|
|
52
59
|
allProjectsGraph: graph,
|
|
53
60
|
selectedProjectsGraph: {
|
|
54
61
|
...prodFilteredGraph?.selectedProjectsGraph,
|
|
55
62
|
...filteredGraph?.selectedProjectsGraph,
|
|
56
63
|
},
|
|
64
|
+
prodAllProjectsGraph: prodGraph,
|
|
65
|
+
prodOnlySelectedProjectDirs,
|
|
57
66
|
unmatchedFilters: [
|
|
58
67
|
...(prodFilteredGraph !== undefined ? prodFilteredGraph.unmatchedFilters : []),
|
|
59
68
|
...(filteredGraph !== undefined ? filteredGraph.unmatchedFilters : []),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/workspace.projects-filter",
|
|
3
|
-
"version": "1100.0.
|
|
3
|
+
"version": "1100.0.24",
|
|
4
4
|
"description": "Filters packages in a workspace",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pnpm",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"micromatch": "^4.0.8",
|
|
34
34
|
"ramda": "npm:@pnpm/ramda@0.28.1",
|
|
35
35
|
"@pnpm/config.matcher": "1100.0.1",
|
|
36
|
-
"@pnpm/
|
|
36
|
+
"@pnpm/workspace.projects-graph": "1100.0.21",
|
|
37
37
|
"@pnpm/workspace.projects-reader": "1101.0.13",
|
|
38
|
-
"@pnpm/workspace.
|
|
39
|
-
"@pnpm/
|
|
38
|
+
"@pnpm/workspace.workspace-manifest-reader": "1100.0.9",
|
|
39
|
+
"@pnpm/error": "1100.0.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@jest/globals": "30.4.1",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"is-windows": "^1.0.2",
|
|
49
49
|
"tempy": "3.0.0",
|
|
50
50
|
"touch": "3.1.1",
|
|
51
|
-
"@pnpm/
|
|
52
|
-
"@pnpm/
|
|
51
|
+
"@pnpm/workspace.projects-filter": "1100.0.24",
|
|
52
|
+
"@pnpm/types": "1101.3.2"
|
|
53
53
|
},
|
|
54
54
|
"engines": {
|
|
55
55
|
"node": ">=22.13"
|