Skip to content

Commit d3a58f8

Browse files
Paul Hinebenmosher
authored andcommitted
Fix packageDir array support (#1176)
1 parent e8954db commit d3a58f8

File tree

4 files changed

+31
-2
lines changed

4 files changed

+31
-2
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ This project adheres to [Semantic Versioning](http://semver.org/).
44
This change log adheres to standards from [Keep a CHANGELOG](http://keepachangelog.com).
55

66
## [Unreleased]
7+
### Fixed
8+
- [`no-extraneous-dependencies`]: `packageDir` option with array value was clobbering package deps instead of merging them ([#1175]/[#1176], thanks [@aravindet] & [@pzhine])
9+
710

811
## [2.14.0] - 2018-08-13
912
* 69e0187 (HEAD -> master, source/master, origin/master, origin/HEAD) Merge pull request #1151 from jf248/jsx
@@ -493,6 +496,7 @@ for info on changes for earlier releases.
493496

494497
[`memo-parser`]: ./memo-parser/README.md
495498

499+
[#1176]: https://github.com/benmosher/eslint-plugin-import/pull/1176
496500
[#1151]: https://github.com/benmosher/eslint-plugin-import/pull/1151
497501
[#1137]: https://github.com/benmosher/eslint-plugin-import/pull/1137
498502
[#1135]: https://github.com/benmosher/eslint-plugin-import/pull/1135
@@ -578,6 +582,7 @@ for info on changes for earlier releases.
578582
[#314]: https://github.com/benmosher/eslint-plugin-import/pull/314
579583
[#912]: https://github.com/benmosher/eslint-plugin-import/pull/912
580584

585+
[#1175]: https://github.com/benmosher/eslint-plugin-import/issues/1175
581586
[#1058]: https://github.com/benmosher/eslint-plugin-import/issues/1058
582587
[#931]: https://github.com/benmosher/eslint-plugin-import/issues/931
583588
[#886]: https://github.com/benmosher/eslint-plugin-import/issues/886
@@ -767,3 +772,5 @@ for info on changes for earlier releases.
767772
[@1pete]: https://github.com/1pete
768773
[@gajus]: https://github.com/gajus
769774
[@jf248]: https://github.com/jf248
775+
[@aravindet]: https://github.com/aravindet
776+
[@pzhine]: https://github.com/pzhine

src/rules/no-extraneous-dependencies.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,12 @@ function getDependencies(context, packageDir) {
4242
if (!isEmpty(paths)) {
4343
// use rule config to find package.json
4444
paths.forEach(dir => {
45-
Object.assign(packageContent, extractDepFields(
45+
const _packageContent = extractDepFields(
4646
JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf8'))
47-
))
47+
)
48+
Object.keys(packageContent).forEach(depsKey =>
49+
Object.assign(packageContent[depsKey], _packageContent[depsKey])
50+
)
4851
})
4952
} else {
5053
// use closest package.json

tests/files/monorepo/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{
22
"private": true,
3+
"dependencies": {
4+
"right-pad": "^1.0.1"
5+
},
36
"devDependencies": {
47
"left-pad": "^1.2.0"
58
}

tests/src/rules/no-extraneous-dependencies.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,22 @@ ruleTester.run('no-extraneous-dependencies', rule, {
9090
code: 'import leftpad from "left-pad";',
9191
options: [{packageDir: packageDirMonoRepoRoot}],
9292
}),
93+
test({
94+
code: 'import react from "react";',
95+
options: [{packageDir: [packageDirMonoRepoRoot, packageDirMonoRepoWithNested]}],
96+
}),
97+
test({
98+
code: 'import leftpad from "left-pad";',
99+
options: [{packageDir: [packageDirMonoRepoRoot, packageDirMonoRepoWithNested]}],
100+
}),
101+
test({
102+
code: 'import leftpad from "left-pad";',
103+
options: [{packageDir: [packageDirMonoRepoWithNested, packageDirMonoRepoRoot]}],
104+
}),
105+
test({
106+
code: 'import rightpad from "right-pad";',
107+
options: [{packageDir: [packageDirMonoRepoRoot, packageDirMonoRepoWithNested]}],
108+
}),
93109
],
94110
invalid: [
95111
test({

0 commit comments

Comments
 (0)