Skip to content

Commit ba52d40

Browse files
committed
More tests, interop (ignore default missing if there are no imports at all), updated arg to 'es6-only'.
1 parent 36b9169 commit ba52d40

File tree

4 files changed

+23
-8
lines changed

4 files changed

+23
-8
lines changed

Diff for: lib/rules/default.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@ module.exports = function (context) {
1919
return;
2020
}
2121

22-
if (!getExports(path).hasDefault) {
22+
var imports = getExports(path);
23+
if (imports.named.size === 0 && context.options[0] !== "es6-only") {
24+
return; // ignore for commonjs compatibility
25+
}
26+
27+
if (!imports.hasDefault) {
2328
context.report(defaultSpecifier, "No default export found in module.");
2429
}
2530
}

Diff for: lib/rules/named.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ module.exports = function (context) {
1818

1919
// if there are no exports, may be a commonjs module.
2020
// TODO: "interop" mode that attempts to read module.exports, exports member assignments?
21-
if (names.size === 0 && !imports.hasDefault && context.options[0] !== "es6") {
21+
if (names.size === 0 && !imports.hasDefault && context.options[0] !== "es6-only") {
2222
return;
2323
}
2424

Diff for: tests/lib/rules/default.js

+15-5
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,40 @@ eslintTester.addRuleTest("lib/rules/default", {
2121
code: "import foo from './default-export';",
2222
filename: FILENAME
2323
}, ecmaFeatures),
24+
2425
assign({
2526
code: "import bar from './default-export';",
2627
filename: FILENAME
2728
}, ecmaFeatures),
29+
2830
assign({
2931
code: "import CoolClass from './default-class';",
3032
filename: FILENAME
3133
}, ecmaFeatures),
34+
3235
assign({
3336
code: "import bar, { baz } from './default-export';",
3437
filename: FILENAME
38+
}, ecmaFeatures),
39+
40+
assign({
41+
code: "import bar from './common';",
42+
filename: FILENAME
3543
}, ecmaFeatures)
3644
],
3745

3846
invalid: [
39-
// assign({
40-
// code: "import foo from './bar';",
41-
// filename: filename("foo.js"),
42-
// errors: ERRORS
43-
// }, ecmaFeatures),
4447
assign({
4548
code: "import baz from './named-exports';",
4649
filename: FILENAME,
4750
errors: ERRORS
51+
}, ecmaFeatures),
52+
53+
assign({
54+
code: "import bar from './common';",
55+
args: [2, "es6-only"],
56+
filename: FILENAME,
57+
errors: ERRORS
4858
}, ecmaFeatures)
4959
]
5060
});

Diff for: tests/lib/rules/named.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ eslintTester.addRuleTest("lib/rules/named", {
7777

7878
assign({
7979
code: "import { a } from './common';",
80-
args: [2, "es6"],
80+
args: [2, "es6-only"],
8181
filename: FILENAME,
8282
errors: ERRORS
8383
}, ecmaFeatures),

0 commit comments

Comments
 (0)