@@ -17,6 +17,7 @@ function extractDepFields(pkg) {
17
17
devDependencies : pkg . devDependencies || { } ,
18
18
optionalDependencies : pkg . optionalDependencies || { } ,
19
19
peerDependencies : pkg . peerDependencies || { } ,
20
+ bundledDependencies : pkg . bundledDependencies || pkg . bundleDependencies || [ ] ,
20
21
}
21
22
}
22
23
@@ -28,6 +29,7 @@ function getDependencies(context, packageDir) {
28
29
devDependencies : { } ,
29
30
optionalDependencies : { } ,
30
31
peerDependencies : { } ,
32
+ bundledDependencies : [ ] ,
31
33
}
32
34
33
35
if ( packageDir && packageDir . length > 0 ) {
@@ -63,6 +65,7 @@ function getDependencies(context, packageDir) {
63
65
packageContent . devDependencies ,
64
66
packageContent . optionalDependencies ,
65
67
packageContent . peerDependencies ,
68
+ packageContent . bundledDependencies ,
66
69
] . some ( hasKeys ) ) {
67
70
return null
68
71
}
@@ -121,11 +124,13 @@ function reportIfMissing(context, deps, depsOptions, node, name) {
121
124
const isInDevDeps = deps . devDependencies [ packageName ] !== undefined
122
125
const isInOptDeps = deps . optionalDependencies [ packageName ] !== undefined
123
126
const isInPeerDeps = deps . peerDependencies [ packageName ] !== undefined
127
+ const isInBundledDeps = deps . bundledDependencies . indexOf ( packageName ) !== - 1
124
128
125
129
if ( isInDeps ||
126
130
( depsOptions . allowDevDeps && isInDevDeps ) ||
127
131
( depsOptions . allowPeerDeps && isInPeerDeps ) ||
128
- ( depsOptions . allowOptDeps && isInOptDeps )
132
+ ( depsOptions . allowOptDeps && isInOptDeps ) ||
133
+ ( depsOptions . allowBundledDeps && isInBundledDeps )
129
134
) {
130
135
return
131
136
}
@@ -169,6 +174,7 @@ module.exports = {
169
174
'devDependencies' : { 'type' : [ 'boolean' , 'array' ] } ,
170
175
'optionalDependencies' : { 'type' : [ 'boolean' , 'array' ] } ,
171
176
'peerDependencies' : { 'type' : [ 'boolean' , 'array' ] } ,
177
+ 'bundledDependencies' : { 'type' : [ 'boolean' , 'array' ] } ,
172
178
'packageDir' : { 'type' : [ 'string' , 'array' ] } ,
173
179
} ,
174
180
'additionalProperties' : false ,
@@ -185,6 +191,7 @@ module.exports = {
185
191
allowDevDeps : testConfig ( options . devDependencies , filename ) !== false ,
186
192
allowOptDeps : testConfig ( options . optionalDependencies , filename ) !== false ,
187
193
allowPeerDeps : testConfig ( options . peerDependencies , filename ) !== false ,
194
+ allowBundledDeps : testConfig ( options . bundledDependencies , filename ) !== false ,
188
195
}
189
196
190
197
// todo: use module visitor from module-utils core
0 commit comments