Skip to content

Commit b7b28e8

Browse files
committed
Implement support for bundledDependencies.
- Make tests pass. - Fixes import-js#1436.
1 parent dacc5a2 commit b7b28e8

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/rules/no-extraneous-dependencies.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ function extractDepFields(pkg) {
1717
devDependencies: pkg.devDependencies || {},
1818
optionalDependencies: pkg.optionalDependencies || {},
1919
peerDependencies: pkg.peerDependencies || {},
20+
bundledDependencies: pkg.bundledDependencies ||pkg.bundleDependencies || [],
2021
}
2122
}
2223

@@ -28,6 +29,7 @@ function getDependencies(context, packageDir) {
2829
devDependencies: {},
2930
optionalDependencies: {},
3031
peerDependencies: {},
32+
bundledDependencies: [],
3133
}
3234

3335
if (packageDir && packageDir.length > 0) {
@@ -63,6 +65,7 @@ function getDependencies(context, packageDir) {
6365
packageContent.devDependencies,
6466
packageContent.optionalDependencies,
6567
packageContent.peerDependencies,
68+
packageContent.bundledDependencies,
6669
].some(hasKeys)) {
6770
return null
6871
}
@@ -121,11 +124,13 @@ function reportIfMissing(context, deps, depsOptions, node, name) {
121124
const isInDevDeps = deps.devDependencies[packageName] !== undefined
122125
const isInOptDeps = deps.optionalDependencies[packageName] !== undefined
123126
const isInPeerDeps = deps.peerDependencies[packageName] !== undefined
127+
const isInBundledDeps = deps.bundledDependencies.indexOf(packageName) !== -1
124128

125129
if (isInDeps ||
126130
(depsOptions.allowDevDeps && isInDevDeps) ||
127131
(depsOptions.allowPeerDeps && isInPeerDeps) ||
128-
(depsOptions.allowOptDeps && isInOptDeps)
132+
(depsOptions.allowOptDeps && isInOptDeps) ||
133+
(depsOptions.allowBundledDeps && isInBundledDeps)
129134
) {
130135
return
131136
}
@@ -169,6 +174,7 @@ module.exports = {
169174
'devDependencies': { 'type': ['boolean', 'array'] },
170175
'optionalDependencies': { 'type': ['boolean', 'array'] },
171176
'peerDependencies': { 'type': ['boolean', 'array'] },
177+
'bundledDependencies': { 'type': ['boolean', 'array'] },
172178
'packageDir': { 'type': ['string', 'array'] },
173179
},
174180
'additionalProperties': false,
@@ -185,6 +191,7 @@ module.exports = {
185191
allowDevDeps: testConfig(options.devDependencies, filename) !== false,
186192
allowOptDeps: testConfig(options.optionalDependencies, filename) !== false,
187193
allowPeerDeps: testConfig(options.peerDependencies, filename) !== false,
194+
allowBundledDeps: testConfig(options.bundledDependencies, filename) !== false,
188195
}
189196

190197
// todo: use module visitor from module-utils core

0 commit comments

Comments
 (0)