Skip to content

Commit 5ed899b

Browse files
committed
fixup! feat(scripts/monorepo): refactor getDependencies with collectDependencies function to return map array including tests
1 parent 52d0f4e commit 5ed899b

5 files changed

Lines changed: 25 additions & 15 deletions

File tree

scripts/generators/copy-notices.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ async function copyNotices() {
1919

2020
console.log(`NOTICE.txt exists in ${noticeFilePath}`);
2121

22-
const dependencyNames = (await monorepo.getDependencies('@fluentui/react-components')).dependencies;
23-
const copyLocations = dependencyNames.map(dependencyName =>
24-
path.resolve(monorepo.findGitRoot(), 'packages', dependencyName.replace('@fluentui/', ''), 'NOTICE.txt'),
22+
const dependencies = (await monorepo.getDependencies('@fluentui/react-components')).dependencies;
23+
const copyLocations = dependencies.map(dep =>
24+
path.resolve(monorepo.findGitRoot(), 'packages', dep.name.replace('@fluentui/', ''), 'NOTICE.txt'),
2525
);
2626

2727
console.log(`reading ${noticeFilePath}`);

scripts/monorepo/src/getDependencies.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// This errors in strict ts check mode.
44

55
/// <reference path="../../../typings/lerna/index.d.ts" />
6-
export declare function getDependencies(packageName: string | string[]): Promise<{
6+
export declare function getDependencies(packageName: string): Promise<{
77
dependencies: Dependency[];
88
devDependencies: Dependency[];
99
all: Dependency[];

scripts/monorepo/src/getDependencies.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,20 +61,21 @@ function collectDependencies(
6161
}
6262

6363
/**
64-
* Returns dependencies metadata build from dependency graph for provided package/s
65-
* @param {string | string[]} packageName - including `@fluentui/` prefix
64+
* Returns dependencies metadata build from dependency graph for provided package
65+
* @param {string} packageName - including `@fluentui/` prefix
6666
*/
6767
async function getDependencies(packageName) {
68-
const packagesToProcess = Array.isArray(packageName) ? packageName : [packageName];
68+
const selfDependencyDefinition = /** @type const */ ({
69+
name: packageName,
70+
dependencyType: 'dependencies',
71+
isTopLevel: true,
72+
});
6973
const { projectGraph } = await lernaUtils.detectProjects();
7074

71-
const allDepsGraph = packagesToProcess
72-
.map(projectName => collectDependencies(projectName, projectGraph, { shallow: false, dependenciesOnly: false }))
73-
.flat();
74-
75-
const depsGraph = packagesToProcess
76-
.map(projectName => collectDependencies(projectName, projectGraph, { shallow: false, dependenciesOnly: true }))
77-
.flat();
75+
const allDepsGraph = collectDependencies(packageName, projectGraph, { shallow: false, dependenciesOnly: false });
76+
allDepsGraph.unshift(selfDependencyDefinition);
77+
const depsGraph = collectDependencies(packageName, projectGraph, { shallow: false, dependenciesOnly: true });
78+
depsGraph.unshift(selfDependencyDefinition);
7879
const devDepsGraph = allDepsGraph.filter(anyDep => !depsGraph.find(prodDep => prodDep.name === anyDep.name));
7980

8081
return {

scripts/monorepo/src/getDependencies.spec.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ describe(`#getDependencies`, () => {
1212

1313
expect(deps.dependencies).toMatchInlineSnapshot(`
1414
Array [
15+
Object {
16+
"dependencyType": "dependencies",
17+
"isTopLevel": true,
18+
"name": "@fluentui/react-text",
19+
},
1520
Object {
1621
"dependencyType": "dependencies",
1722
"isTopLevel": true,

scripts/projects-test/src/packPackages.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ export async function packProjectPackages(
3838

3939
logger(`✔️ Used lerna config: ${workspaceRoot}`);
4040

41-
const { dependencies: requiredPackages, projectGraph } = await getDependencies(rootPackages);
41+
if (rootPackages.length > 1) {
42+
throw new Error('illegal API, we support only 1 package from now one!');
43+
}
44+
45+
const { dependencies: requiredPackages, projectGraph } = await getDependencies(rootPackages[0]);
4246

4347
logger(`✔️ Following packages will be packed:${requiredPackages.map(pkg => `\n${' '.repeat(30)}- ${pkg.name}`)}`);
4448

0 commit comments

Comments
 (0)