Skip to content

Commit 2e05c3f

Browse files
authored
Merge branch 'master' into no-relative-parent-imports
2 parents dd0520e + 8f668c7 commit 2e05c3f

File tree

7 files changed

+78
-36
lines changed

7 files changed

+78
-36
lines changed

Diff for: CHANGELOG.md

+9-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ 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+
- Add [`no-relative-parent-imports`] rule: disallow relative imports from parent directories.
8+
9+
## [2.12.0] - 2018-05-17
710
### Added
811
- Ignore type imports for [`named`] rule ([#931], thanks [@mattijsbliek])
912
- Add documentation for [`no-useless-path-segments`] rule ([#1068], thanks [@manovotny])
10-
- Add [`no-relative-parent-imports`] rule: disallow relative imports from parent directories.
11-
13+
- `packageDir` option for [`no-extraneous-dependencies`] can be array-valued ([#1085], thanks [@hulkish])
1214

13-
# [2.11.0] - 2018-04-09
15+
## [2.11.0] - 2018-04-09
1416
### Added
1517
- Fixer for [`first`] ([#1046], thanks [@fengkfengk])
1618
- `allow-require` option for [`no-commonjs`] rule ([#880], thanks [@futpib])
@@ -464,6 +466,7 @@ for info on changes for earlier releases.
464466

465467
[`memo-parser`]: ./memo-parser/README.md
466468

469+
[#1085]: https://github.com/benmosher/eslint-plugin-import/pull/1085
467470
[#1068]: https://github.com/benmosher/eslint-plugin-import/pull/1068
468471
[#1046]: https://github.com/benmosher/eslint-plugin-import/pull/1046
469472
[#944]: https://github.com/benmosher/eslint-plugin-import/pull/944
@@ -607,7 +610,8 @@ for info on changes for earlier releases.
607610
[#119]: https://github.com/benmosher/eslint-plugin-import/issues/119
608611
[#89]: https://github.com/benmosher/eslint-plugin-import/issues/89
609612

610-
[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v2.11.0...HEAD
613+
[Unreleased]: https://github.com/benmosher/eslint-plugin-import/compare/v2.12.0...HEAD
614+
[2.12.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.11.0...v2.12.0
611615
[2.11.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.10.0...v2.11.0
612616
[2.10.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.9.0...v2.10.0
613617
[2.9.0]: https://github.com/benmosher/eslint-plugin-import/compare/v2.8.0...v2.9.0
@@ -717,3 +721,4 @@ for info on changes for earlier releases.
717721
[@lukeapage]: https://github.com/lukeapage
718722
[@manovotny]: https://github.com/manovotny
719723
[@mattijsbliek]: https://github.com/mattijsbliek
724+
[@hulkish]: https://github.com/hulkish

Diff for: package.json

+13-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-plugin-import",
3-
"version": "2.11.0",
3+
"version": "2.12.0",
44
"description": "Import with sanity.",
55
"engines": {
66
"node": ">=4"
@@ -16,15 +16,11 @@
1616
],
1717
"scripts": {
1818
"watch": "cross-env NODE_PATH=./src mocha --watch --compilers js:babel-register --recursive tests/src",
19-
"cover": "gulp pretest && cross-env NODE_PATH=./lib istanbul cover --dir reports/coverage _mocha tests/lib/ -- --recursive -R progress",
2019
"pretest": "linklocal",
2120
"posttest": "eslint ./src",
2221
"test": "cross-env BABEL_ENV=test NODE_PATH=./src nyc -s mocha -R dot --recursive tests/src -t 5s",
2322
"test-compiled": "npm run prepublish && NODE_PATH=./lib mocha --compilers js:babel-register --recursive tests/src",
24-
"coverage-report": "npm t && nyc report --reporter html",
2523
"test-all": "npm test && for resolver in ./resolvers/*; do cd $resolver && npm test && cd ../..; done",
26-
"ci-test": "eslint ./src && gulp pretest && cross-env NODE_PATH=./lib istanbul cover --report lcovonly --dir reports/coverage _mocha tests/lib/ -- --recursive --reporter dot",
27-
"debug": "cross-env NODE_PATH=./lib mocha debug --recursive --reporter dot tests/lib/",
2824
"prepublish": "gulp prepublish",
2925
"coveralls": "nyc report --reporter lcovonly && cat ./coverage/lcov.info | coveralls"
3026
},
@@ -48,12 +44,12 @@
4844
},
4945
"homepage": "https://github.com/benmosher/eslint-plugin-import",
5046
"devDependencies": {
51-
"babel-eslint": "next",
52-
"babel-plugin-istanbul": "^2.0.1",
47+
"babel-eslint": "8.0.x",
48+
"babel-plugin-istanbul": "^4.1.6",
5349
"babel-preset-es2015-argon": "latest",
54-
"babel-register": "6.24.1",
50+
"babel-register": "^6.26.0",
5551
"babylon": "6.15.0",
56-
"chai": "^3.4.0",
52+
"chai": "^3.5.0",
5753
"coveralls": "^3.0.0",
5854
"cross-env": "^4.0.0",
5955
"eslint": "2.x - 4.x",
@@ -62,18 +58,16 @@
6258
"eslint-import-resolver-webpack": "file:./resolvers/webpack",
6359
"eslint-module-utils": "file:./utils",
6460
"eslint-plugin-import": "2.x",
65-
"eslint-plugin-typescript": "^0.8.1",
6661
"gulp": "^3.9.0",
6762
"gulp-babel": "6.1.2",
68-
"istanbul": "^0.4.0",
6963
"linklocal": "^2.6.0",
70-
"mocha": "^3.1.2",
71-
"nyc": "^8.3.0",
64+
"mocha": "^3.5.3",
65+
"nyc": "^11.7.1",
7266
"redux": "^3.0.4",
7367
"rimraf": "^2.6.2",
7468
"sinon": "^2.3.2",
7569
"typescript": "^2.6.2",
76-
"typescript-eslint-parser": "^12.0.0"
70+
"typescript-eslint-parser": "^15.0.0"
7771
},
7872
"peerDependencies": {
7973
"eslint": "2.x - 4.x"
@@ -95,6 +89,10 @@
9589
"babel-register"
9690
],
9791
"sourceMap": false,
98-
"instrument": false
92+
"instrument": false,
93+
"include": [
94+
"src/",
95+
"resolvers/"
96+
]
9997
}
10098
}

Diff for: resolvers/node/package.json

+9-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"index.js"
88
],
99
"scripts": {
10-
"test": "nyc mocha"
10+
"test": "nyc mocha",
11+
"coveralls": "nyc report --reporter lcovonly && cd ../.. && coveralls < ./resolvers/node/coverage/lcov.info"
1112
},
1213
"repository": {
1314
"type": "git",
@@ -32,7 +33,13 @@
3233
},
3334
"devDependencies": {
3435
"chai": "^3.5.0",
36+
"coveralls": "^3.0.0",
3537
"mocha": "^3.5.3",
36-
"nyc": "^10.3.2"
38+
"nyc": "^11.7.1"
39+
},
40+
"nyc": {
41+
"exclude": [
42+
"test/"
43+
]
3744
}
3845
}

Diff for: resolvers/webpack/CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel
66
## Unreleased
77

88

9+
## 0.10.0 - 2018-05-17
10+
### Changed
11+
- cache webpack resolve function, for performance ([#788]/[#1091])
12+
913
## 0.9.0 - 2018-03-29
1014
### Breaking
1115
- Fix with `pnpm` by bumping `resolve` ([#968])
@@ -97,6 +101,7 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel
97101
- `interpret` configs (such as `.babel.js`).
98102
Thanks to [@gausie] for the initial PR ([#164], ages ago! 😅) and [@jquense] for tests ([#278]).
99103

104+
[#1091]: https://github.com/benmosher/eslint-plugin-import/pull/1091
100105
[#969]: https://github.com/benmosher/eslint-plugin-import/pull/969
101106
[#968]: https://github.com/benmosher/eslint-plugin-import/pull/968
102107
[#683]: https://github.com/benmosher/eslint-plugin-import/pull/683
@@ -112,6 +117,7 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel
112117
[#181]: https://github.com/benmosher/eslint-plugin-import/pull/181
113118
[#164]: https://github.com/benmosher/eslint-plugin-import/pull/164
114119

120+
[#788]: https://github.com/benmosher/eslint-plugin-import/issues/788
115121
[#681]: https://github.com/benmosher/eslint-plugin-import/issues/681
116122
[#435]: https://github.com/benmosher/eslint-plugin-import/issues/435
117123
[#411]: https://github.com/benmosher/eslint-plugin-import/issues/411

Diff for: resolvers/webpack/index.js

+24-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
var findRoot = require('find-root')
22
, path = require('path')
3-
, get = require('lodash.get')
3+
, get = require('lodash/get')
4+
, isEqual = require('lodash/isEqual')
45
, find = require('array-find')
56
, interpret = require('interpret')
6-
// not available on 0.10.x
7-
, isAbsolute = path.isAbsolute || require('is-absolute')
87
, fs = require('fs')
98
, coreLibs = require('node-libs-browser')
109
, resolve = require('resolve')
@@ -56,7 +55,7 @@ exports.resolve = function (source, file, settings) {
5655
if (!configPath || typeof configPath === 'string') {
5756

5857
// see if we've got an absolute path
59-
if (!configPath || !isAbsolute(configPath)) {
58+
if (!configPath || !path.isAbsolute(configPath)) {
6059
// if not, find ancestral package.json and use its directory as base for the path
6160
packageDir = findRoot(path.resolve(file))
6261
if (!packageDir) throw new Error('package not found above ' + file)
@@ -105,7 +104,8 @@ exports.resolve = function (source, file, settings) {
105104
}
106105

107106
// otherwise, resolve "normally"
108-
var resolveSync = createResolveSync(configPath, webpackConfig)
107+
var resolveSync = getResolveSync(configPath, webpackConfig)
108+
109109
try {
110110
return { found: true, path: resolveSync(path.dirname(file), source) }
111111
} catch (err) {
@@ -114,6 +114,24 @@ exports.resolve = function (source, file, settings) {
114114
}
115115
}
116116

117+
var MAX_CACHE = 10
118+
var _cache = []
119+
function getResolveSync(configPath, webpackConfig) {
120+
var cacheKey = { configPath: configPath, webpackConfig: webpackConfig }
121+
var cached = find(_cache, function (entry) { return isEqual(entry.key, cacheKey) })
122+
if (!cached) {
123+
cached = {
124+
key: cacheKey,
125+
value: createResolveSync(configPath, webpackConfig)
126+
}
127+
// put in front and pop last item
128+
if (_cache.unshift(cached) > MAX_CACHE) {
129+
_cache.pop()
130+
}
131+
}
132+
return cached.value
133+
}
134+
117135
function createResolveSync(configPath, webpackConfig) {
118136
var webpackRequire
119137
, basedir = null
@@ -316,7 +334,7 @@ function findConfigPath(configPath, packageDir) {
316334
})
317335

318336
// see if we've got an absolute path
319-
if (!isAbsolute(configPath)) {
337+
if (!path.isAbsolute(configPath)) {
320338
configPath = path.join(packageDir, configPath)
321339
}
322340
} else {

Diff for: resolvers/webpack/package.json

+15-9
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
{
22
"name": "eslint-import-resolver-webpack",
3-
"version": "0.9.0",
3+
"version": "0.10.0",
44
"description": "Resolve paths to dependencies, given a webpack.config.js. Plugin for eslint-plugin-import.",
55
"main": "index.js",
66
"scripts": {
77
"test": "nyc mocha -t 5s",
8-
"report": "nyc report --reporter=html"
8+
"report": "nyc report --reporter=html",
9+
"coveralls": "nyc report --reporter lcovonly && cd ../.. && coveralls < ./resolvers/webpack/coverage/lcov.info"
910
},
1011
"files": [
1112
"index.js",
@@ -35,8 +36,7 @@
3536
"find-root": "^1.1.0",
3637
"has": "^1.0.1",
3738
"interpret": "^1.0.0",
38-
"is-absolute": "^0.2.3",
39-
"lodash.get": "^4.4.2",
39+
"lodash": "^4.17.4",
4040
"node-libs-browser": "^1.0.0 || ^2.0.0",
4141
"resolve": "^1.4.0",
4242
"semver": "^5.3.0"
@@ -46,11 +46,17 @@
4646
"webpack": ">=1.11.0"
4747
},
4848
"devDependencies": {
49-
"babel-plugin-istanbul": "^4.1.5",
50-
"babel-preset-es2015-argon": "^0.1.0",
49+
"babel-plugin-istanbul": "^4.1.6",
50+
"babel-preset-es2015-argon": "latest",
5151
"babel-register": "^6.26.0",
52-
"chai": "^3.4.1",
53-
"mocha": "^2.3.3",
54-
"nyc": "^7.0.0"
52+
"chai": "^3.5.0",
53+
"coveralls": "^3.0.0",
54+
"mocha": "^3.5.3",
55+
"nyc": "^11.7.1"
56+
},
57+
"nyc": {
58+
"exclude": [
59+
"test/"
60+
]
5561
}
5662
}

Diff for: tests/src/core/getExports.js

+2
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@ describe('ExportMap', function () {
311311
})
312312

313313
context('alternate parsers', function () {
314+
314315
const configs = [
315316
// ['string form', { 'typescript-eslint-parser': '.ts' }],
316317
['array form', { 'typescript-eslint-parser': ['.ts', '.tsx'] }],
@@ -326,6 +327,7 @@ describe('ExportMap', function () {
326327

327328
let imports
328329
before('load imports', function () {
330+
this.timeout(20000) // takes a long time :shrug:
329331
imports = ExportMap.get('./typescript.ts', context)
330332
})
331333

0 commit comments

Comments
 (0)