cli: add dependents to PackageGraph nodes
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
@@ -87,6 +87,11 @@ describe('PackageGraph', () => {
|
||||
localDependencies: new Map([['b', b]]),
|
||||
localDevDependencies: new Map([['c', c]]),
|
||||
localOptionalDependencies: new Map(),
|
||||
allLocalDependents: new Map(),
|
||||
publishedLocalDependents: new Map(),
|
||||
localDependents: new Map(),
|
||||
localDevDependents: new Map(),
|
||||
localOptionalDependents: new Map(),
|
||||
});
|
||||
expect(b).toMatchObject({
|
||||
name: 'b',
|
||||
@@ -96,6 +101,11 @@ describe('PackageGraph', () => {
|
||||
localDependencies: new Map(),
|
||||
localDevDependencies: new Map([['c', c]]),
|
||||
localOptionalDependencies: new Map(),
|
||||
allLocalDependents: new Map([['a', a]]),
|
||||
publishedLocalDependents: new Map([['a', a]]),
|
||||
localDependents: new Map([['a', a]]),
|
||||
localDevDependents: new Map(),
|
||||
localOptionalDependents: new Map(),
|
||||
});
|
||||
expect(c).toMatchObject({
|
||||
name: 'c',
|
||||
@@ -105,6 +115,17 @@ describe('PackageGraph', () => {
|
||||
localDependencies: new Map(),
|
||||
localDevDependencies: new Map(),
|
||||
localOptionalDependencies: new Map(),
|
||||
allLocalDependents: new Map([
|
||||
['a', a],
|
||||
['b', b],
|
||||
]),
|
||||
publishedLocalDependents: new Map(),
|
||||
localDependents: new Map(),
|
||||
localDevDependents: new Map([
|
||||
['a', a],
|
||||
['b', b],
|
||||
]),
|
||||
localOptionalDependents: new Map(),
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ export type PackageGraphNode = {
|
||||
dir: string;
|
||||
/** The package data of the package itself */
|
||||
packageJson: ExtendedPackageJSON;
|
||||
|
||||
/** All direct local dependencies of the package */
|
||||
allLocalDependencies: Map<string, PackageGraphNode>;
|
||||
/** All direct local dependencies that will be present in the published package */
|
||||
@@ -57,6 +58,17 @@ export type PackageGraphNode = {
|
||||
localDevDependencies: Map<string, PackageGraphNode>;
|
||||
/** Local optionalDependencies */
|
||||
localOptionalDependencies: Map<string, PackageGraphNode>;
|
||||
|
||||
/** All direct incoming local dependencies of the package */
|
||||
allLocalDependents: Map<string, PackageGraphNode>;
|
||||
/** All direct incoming local dependencies that will be present in the published package */
|
||||
publishedLocalDependents: Map<string, PackageGraphNode>;
|
||||
/** Incoming local dependencies */
|
||||
localDependents: Map<string, PackageGraphNode>;
|
||||
/** Incoming local devDependencies */
|
||||
localDevDependents: Map<string, PackageGraphNode>;
|
||||
/** Incoming local optionalDependencies */
|
||||
localOptionalDependents: Map<string, PackageGraphNode>;
|
||||
};
|
||||
|
||||
export class PackageGraph extends Map<string, PackageGraphNode> {
|
||||
@@ -82,11 +94,18 @@ export class PackageGraph extends Map<string, PackageGraphNode> {
|
||||
name,
|
||||
dir: pkg.dir,
|
||||
packageJson: pkg.packageJson as ExtendedPackageJSON,
|
||||
|
||||
allLocalDependencies: new Map(),
|
||||
publishedLocalDependencies: new Map(),
|
||||
localDependencies: new Map(),
|
||||
localDevDependencies: new Map(),
|
||||
localOptionalDependencies: new Map(),
|
||||
|
||||
allLocalDependents: new Map(),
|
||||
publishedLocalDependents: new Map(),
|
||||
localDependents: new Map(),
|
||||
localDevDependents: new Map(),
|
||||
localOptionalDependents: new Map(),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -98,6 +117,10 @@ export class PackageGraph extends Map<string, PackageGraphNode> {
|
||||
node.allLocalDependencies.set(depName, depPkg);
|
||||
node.publishedLocalDependencies.set(depName, depPkg);
|
||||
node.localDependencies.set(depName, depPkg);
|
||||
|
||||
depPkg.allLocalDependents.set(node.name, node);
|
||||
depPkg.publishedLocalDependents.set(node.name, node);
|
||||
depPkg.localDependents.set(node.name, node);
|
||||
}
|
||||
}
|
||||
for (const depName of Object.keys(
|
||||
@@ -107,6 +130,9 @@ export class PackageGraph extends Map<string, PackageGraphNode> {
|
||||
if (depPkg) {
|
||||
node.allLocalDependencies.set(depName, depPkg);
|
||||
node.localDevDependencies.set(depName, depPkg);
|
||||
|
||||
depPkg.allLocalDependents.set(node.name, node);
|
||||
depPkg.localDevDependents.set(node.name, node);
|
||||
}
|
||||
}
|
||||
for (const depName of Object.keys(
|
||||
@@ -117,6 +143,10 @@ export class PackageGraph extends Map<string, PackageGraphNode> {
|
||||
node.allLocalDependencies.set(depName, depPkg);
|
||||
node.publishedLocalDependencies.set(depName, depPkg);
|
||||
node.localOptionalDependencies.set(depName, depPkg);
|
||||
|
||||
depPkg.allLocalDependents.set(node.name, node);
|
||||
depPkg.publishedLocalDependents.set(node.name, node);
|
||||
depPkg.localOptionalDependents.set(node.name, node);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user