Skip to content

Commit a0bb733

Browse files
committed
Cache extension settings using has.
1 parent ff49b83 commit a0bb733

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
"es6-map": "^0.1.3",
7878
"es6-set": "^0.1.4",
7979
"eslint-import-resolver-node": "^0.2.0",
80+
"has": "^1.0.1",
8081
"lodash.cond": "^4.3.0",
8182
"lodash.endswith": "^4.0.1",
8283
"lodash.find": "^4.3.0",

resolvers/webpack/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var findRoot = require('find-root')
1010
, assign = require('object-assign')
1111
, resolve = require('resolve')
1212
, semver = require('semver')
13+
, has = require('has')
1314

1415
var log = require('debug')('eslint-plugin-import:resolver:webpack')
1516

@@ -265,7 +266,7 @@ function findExternal(source, externals, context) {
265266

266267
// else, vanilla object
267268
for (var key in externals) {
268-
if (!externals.hasOwnProperty(key)) continue
269+
if (!has(externals, key)) continue
269270
if (source === key) return true
270271
}
271272
return false

src/rules/extensions.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import path from 'path'
22
import endsWith from 'lodash.endswith'
3+
import has from 'has'
34

45
import resolve from '../core/resolve'
56
import { isBuiltIn } from '../core/importType'
@@ -10,11 +11,13 @@ module.exports = function (context) {
1011
const modifiers = typeof configuration === 'object' ? configuration : context.options[1] || {}
1112

1213
function isUseOfExtensionRequired(extension) {
13-
return (modifiers[extension] || defaultConfig) === 'always'
14+
if (!has(modifiers, extension)) { modifiers[extension] = defaultConfig }
15+
return modifiers[extension] === 'always'
1416
}
1517

1618
function isUseOfExtensionForbidden(extension) {
17-
return (modifiers[extension] || defaultConfig) === 'never'
19+
if (!has(modifiers, extension)) { modifiers[extension] = defaultConfig }
20+
return modifiers[extension] === 'never'
1821
}
1922

2023
function isResolvableWithoutExtension(file) {

0 commit comments

Comments
 (0)