Merge pull request babel/eslint-plugin-babel#23 from LegNeato/master
Support trailing commas in import and export statements. Fixes babel/eslint-plugin-babel#21
This commit is contained in:
parent
64291d8d52
commit
9d8a2f14dd
@ -173,6 +173,12 @@ module.exports = function(context) {
|
|||||||
penultimate = context.getLastToken(lastSpecifier),
|
penultimate = context.getLastToken(lastSpecifier),
|
||||||
last = context.getTokenAfter(lastSpecifier);
|
last = context.getTokenAfter(lastSpecifier);
|
||||||
|
|
||||||
|
// support trailing commas
|
||||||
|
if (last.value === ",") {
|
||||||
|
penultimate = last;
|
||||||
|
last = context.getTokenAfter(last);
|
||||||
|
}
|
||||||
|
|
||||||
validateBraceSpacing(node, first, second, penultimate, last);
|
validateBraceSpacing(node, first, second, penultimate, last);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,6 +201,12 @@ module.exports = function(context) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// support trailing commas
|
||||||
|
if (last.value === ",") {
|
||||||
|
penultimate = last;
|
||||||
|
last = context.getTokenAfter(last);
|
||||||
|
}
|
||||||
|
|
||||||
validateBraceSpacing(node, first, second, penultimate, last);
|
validateBraceSpacing(node, first, second, penultimate, last);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|||||||
@ -37,7 +37,11 @@ ruleTester.run('babel/object-curly-spacing', rule, {
|
|||||||
{ code: "import {\ndoor } from 'room'", options: ["always"], ecmaFeatures: { modules: true } },
|
{ code: "import {\ndoor } from 'room'", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "export { door } from 'room'", options: ["always"], ecmaFeatures: { modules: true } },
|
{ code: "export { door } from 'room'", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "import { house, mouse } from 'caravan'", options: ["always"], ecmaFeatures: { modules: true } },
|
{ code: "import { house, mouse } from 'caravan'", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "import {\nhouse,\nmouse\n} from 'caravan'", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "import {\nhouse,\nmouse,\n} from 'caravan'", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "export { door }", options: ["always"], ecmaFeatures: { modules: true } },
|
{ code: "export { door }", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "export {\ndoor,\nhouse\n}", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "export {\ndoor,\nhouse,\n}", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "import 'room'", options: ["always"], ecmaFeatures: { modules: true } },
|
{ code: "import 'room'", options: ["always"], ecmaFeatures: { modules: true } },
|
||||||
|
|
||||||
// always - empty object
|
// always - empty object
|
||||||
@ -85,7 +89,11 @@ ruleTester.run('babel/object-curly-spacing', rule, {
|
|||||||
{ code: "export {\ndoor\n} from 'room'", options: ["never"], ecmaFeatures: { modules: true } },
|
{ code: "export {\ndoor\n} from 'room'", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "import {house,mouse} from 'caravan'", options: ["never"], ecmaFeatures: { modules: true } },
|
{ code: "import {house,mouse} from 'caravan'", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "import {house, mouse} from 'caravan'", options: ["never"], ecmaFeatures: { modules: true } },
|
{ code: "import {house, mouse} from 'caravan'", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "import {\nhouse,\nmouse} from 'caravan'", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "import {\nhouse,\nmouse,\n} from 'caravan'", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "export {door}", options: ["never"], ecmaFeatures: { modules: true } },
|
{ code: "export {door}", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "export {\ndoor,\nmouse\n}", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
|
{ code: "export {\ndoor,\nmouse,\n}", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
{ code: "import 'room'", options: ["never"], ecmaFeatures: { modules: true } },
|
{ code: "import 'room'", options: ["never"], ecmaFeatures: { modules: true } },
|
||||||
|
|
||||||
// never - empty object
|
// never - empty object
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user