Skip to content

Commit 0c1b1b2

Browse files
authored
fix(cli-config): include peer dependencies when finding dependencies (#2423)
* fix(cli-config): include peer dependencies when finding dependencies * add tests
1 parent 90945e6 commit 0c1b1b2

File tree

2 files changed

+33
-21
lines changed

2 files changed

+33
-21
lines changed
Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,35 @@
11
import findDependencies from '../findDependencies';
22
import {cleanup, writeFiles, getTempDirectory} from '../../../../jest/helpers';
33

4-
beforeEach(async () => {
5-
cleanup(DIR);
6-
jest.resetModules();
7-
});
4+
describe('findDependencies', () => {
5+
const DIR = getTempDirectory('find_dependencies_test');
6+
7+
beforeEach(() => {
8+
cleanup(DIR);
9+
jest.resetModules();
10+
});
811

9-
afterEach(() => cleanup(DIR));
12+
afterEach(() => cleanup(DIR));
1013

11-
const DIR = getTempDirectory('find_dependencies_test');
14+
test('returns packages from dependencies, peer and dev dependencies', () => {
15+
writeFiles(DIR, {
16+
'package.json': JSON.stringify({
17+
dependencies: {'rnpm-plugin-test': '*'},
18+
peerDependencies: {'rnpm-plugin-test-2': '*'},
19+
devDependencies: {'rnpm-plugin-test-3': '*'},
20+
}),
21+
});
22+
expect(findDependencies(DIR)).toHaveLength(3);
23+
});
1224

13-
test('returns plugins from both dependencies and dev dependencies', () => {
14-
writeFiles(DIR, {
15-
'package.json': `
16-
{
17-
"dependencies": {"rnpm-plugin-test": "*"},
18-
"devDependencies": {"rnpm-plugin-test-2": "*"}
19-
}
20-
`,
25+
test('dedupes dependencies', () => {
26+
writeFiles(DIR, {
27+
'package.json': JSON.stringify({
28+
dependencies: {'rnpm-plugin-test': '*'},
29+
peerDependencies: {'rnpm-plugin-test-2': '*'},
30+
devDependencies: {'rnpm-plugin-test-2': '*'},
31+
}),
32+
});
33+
expect(findDependencies(DIR)).toHaveLength(2);
2134
});
22-
expect(findDependencies(DIR)).toHaveLength(2);
2335
});

packages/cli-config/src/findDependencies.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ export default function findDependencies(root: string): Array<string> {
88
let pjson;
99

1010
try {
11-
pjson = JSON.parse(
12-
fs.readFileSync(path.join(root, 'package.json'), 'utf8'),
13-
);
11+
const content = fs.readFileSync(path.join(root, 'package.json'), 'utf8');
12+
pjson = JSON.parse(content);
1413
} catch (e) {
1514
return [];
1615
}
1716

18-
const deps = [
17+
const deps = new Set([
1918
...Object.keys(pjson.dependencies || {}),
19+
...Object.keys(pjson.peerDependencies || {}),
2020
...Object.keys(pjson.devDependencies || {}),
21-
];
21+
]);
2222

23-
return deps;
23+
return Array.from(deps);
2424
}

0 commit comments

Comments
 (0)