Skip to content

Commit a44341b

Browse files
committed
Merge pull request #132 from benmosher/jsnext
jsnext:main
2 parents 633205c + fc1df76 commit a44341b

File tree

24 files changed

+161
-26
lines changed

24 files changed

+161
-26
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ build/Release
2323
# Commenting this out is preferred by some people, see
2424
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git-
2525
node_modules
26+
!tests/**/node_modules/
2627

2728
# Users Environment Variables
2829
.lock-wscript

.npmignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# files
2-
src/
32
reports/
43
resolvers/
54

65
# config
76
.eslintrc
87
.travis.yml
8+
appveyor.yml
99
.editorconfig
1010
.gitignore
1111

appveyor.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
environment:
33
NODE_PATH: ./lib
44
# NODE_PATH: ./lib
5-
matrix:
6-
- nodejs_version: "0.10"
7-
- nodejs_version: "0.12"
8-
- nodejs_version: "4"
9-
- nodejs_version: "5"
5+
nodejs_version: "4"
6+
# killing build matrix in the interest of turnaround time
7+
# matrix:
8+
# - nodejs_version: "0.10"
9+
# - nodejs_version: "0.12"
10+
# - nodejs_version: "5"
1011

1112
# - nodejs_version: "2"
1213

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@
4242
"chai": "^3.4.0",
4343
"coveralls": "^2.11.4",
4444
"eslint": ">=1.8.0",
45+
"eslint-import-resolver-node": "file:./resolvers/node",
46+
"eslint-import-resolver-webpack": "file:./resolvers/webpack",
4547
"istanbul": "^0.4.0",
4648
"mocha": "^2.2.1",
47-
"remap-istanbul": "^0.4.0",
48-
"eslint-import-resolver-webpack": "file:./resolvers/webpack",
49-
"eslint-import-resolver-node": "file:./resolvers/node"
49+
"redux": "^3.0.4",
50+
"remap-istanbul": "^0.4.0"
5051
},
5152
"peerDependencies": {
5253
"eslint": ">=1.4.0"

resolvers/node/index.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,18 @@ exports.resolveImport = function resolveImport(source, file, config) {
99
}
1010

1111
function opts(basedir, config) {
12-
return assign( {}
13-
, config
14-
, { basedir: basedir }
15-
)
12+
return assign({},
13+
config,
14+
{
15+
basedir: basedir,
16+
packageFilter: packageFilter,
17+
18+
})
1619
}
1720

21+
function packageFilter(pkg) {
22+
if (pkg['jsnext:main']) {
23+
pkg['main'] = pkg['jsnext:main']
24+
}
25+
return pkg
26+
}

resolvers/node/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-import-resolver-node",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"description": "Node default behavior import resolution plugin for eslint-plugin-import.",
55
"main": "index.js",
66
"scripts": {

resolvers/webpack/index.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var findRoot = require('find-root')
22
, path = require('path')
33
, resolve = require('resolve')
44
, get = require('lodash.get')
5+
, find = require('array-find')
56

67
var resolveAlias = require('./resolve-alias')
78

@@ -60,6 +61,7 @@ exports.resolveImport = function resolveImport(source, file, settings) {
6061
|| ['web_modules', 'node_modules'],
6162

6263
paths: paths,
64+
packageFilter: packageFilter.bind(null, webpackConfig),
6365
})
6466
}
6567

@@ -85,3 +87,32 @@ function findExternal(source, externals) {
8587
// else, vanilla object
8688
return Object.keys(externals).some(function (e) { return source === e })
8789
}
90+
91+
/**
92+
* webpack defaults: http://webpack.github.io/docs/configuration.html#resolve-packagemains
93+
* @type {Array}
94+
*/
95+
var defaultMains = [
96+
'webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main',
97+
]
98+
99+
function packageFilter(config, pkg) {
100+
var altMain
101+
102+
// check for rollup-style first
103+
if (pkg['jsnext:main']) {
104+
pkg['main'] = pkg['jsnext:main']
105+
} else {
106+
// check for configured/default alternative main fields
107+
altMain = find(
108+
get(config, ['resolve', 'packageMains']) || defaultMains,
109+
function (m) { return typeof get(pkg, m) === 'string' })
110+
111+
if (altMain) {
112+
pkg['main'] = get(pkg, altMain)
113+
}
114+
}
115+
116+
117+
return pkg
118+
}

resolvers/webpack/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "eslint-import-resolver-webpack",
3-
"version": "0.1.0",
3+
"version": "0.1.3",
44
"description": "Resolve paths to dependencies, given a webpack.config.js. Plugin for eslint-plugin-import.",
55
"main": "index.js",
66
"scripts": {
@@ -24,6 +24,7 @@
2424
},
2525
"homepage": "https://github.com/benmosher/eslint-plugin-import#readme",
2626
"dependencies": {
27+
"array-find": "^1.0.0",
2728
"find-root": "^0.1.1",
2829
"lodash.get": "^3.7.0",
2930
"resolve": "^1.1.6"

resolvers/webpack/test/package-mains/jam/index.js

Whitespace-only changes.

resolvers/webpack/test/package-mains/jam/jam.js

Whitespace-only changes.

0 commit comments

Comments
 (0)