Skip to content

Commit

Permalink
fix(cli-config): include peer dependencies when finding dependencies (#…
Browse files Browse the repository at this point in the history
…2423)

* fix(cli-config): include peer dependencies when finding dependencies

* add tests
  • Loading branch information
tido64 authored Sep 23, 2024
1 parent 90945e6 commit 0c1b1b2
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 21 deletions.
42 changes: 27 additions & 15 deletions packages/cli-config/src/__tests__/findDependencies-test.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,35 @@
import findDependencies from '../findDependencies';
import {cleanup, writeFiles, getTempDirectory} from '../../../../jest/helpers';

beforeEach(async () => {
cleanup(DIR);
jest.resetModules();
});
describe('findDependencies', () => {
const DIR = getTempDirectory('find_dependencies_test');

beforeEach(() => {
cleanup(DIR);
jest.resetModules();
});

afterEach(() => cleanup(DIR));
afterEach(() => cleanup(DIR));

const DIR = getTempDirectory('find_dependencies_test');
test('returns packages from dependencies, peer and dev dependencies', () => {
writeFiles(DIR, {
'package.json': JSON.stringify({
dependencies: {'rnpm-plugin-test': '*'},
peerDependencies: {'rnpm-plugin-test-2': '*'},
devDependencies: {'rnpm-plugin-test-3': '*'},
}),
});
expect(findDependencies(DIR)).toHaveLength(3);
});

test('returns plugins from both dependencies and dev dependencies', () => {
writeFiles(DIR, {
'package.json': `
{
"dependencies": {"rnpm-plugin-test": "*"},
"devDependencies": {"rnpm-plugin-test-2": "*"}
}
`,
test('dedupes dependencies', () => {
writeFiles(DIR, {
'package.json': JSON.stringify({
dependencies: {'rnpm-plugin-test': '*'},
peerDependencies: {'rnpm-plugin-test-2': '*'},
devDependencies: {'rnpm-plugin-test-2': '*'},
}),
});
expect(findDependencies(DIR)).toHaveLength(2);
});
expect(findDependencies(DIR)).toHaveLength(2);
});
12 changes: 6 additions & 6 deletions packages/cli-config/src/findDependencies.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ export default function findDependencies(root: string): Array<string> {
let pjson;

try {
pjson = JSON.parse(
fs.readFileSync(path.join(root, 'package.json'), 'utf8'),
);
const content = fs.readFileSync(path.join(root, 'package.json'), 'utf8');
pjson = JSON.parse(content);
} catch (e) {
return [];
}

const deps = [
const deps = new Set([
...Object.keys(pjson.dependencies || {}),
...Object.keys(pjson.peerDependencies || {}),
...Object.keys(pjson.devDependencies || {}),
];
]);

return deps;
return Array.from(deps);
}

0 comments on commit 0c1b1b2

Please sign in to comment.