Merge pull request #3421 from loganfsmyth/generate-default-exports
Wrap parens around default exports starting with function/class - fixes T7136
This commit is contained in:
commit
6ec9bbead4
@ -43,12 +43,7 @@ export function UpdateExpression(node: Object, parent: Object): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function ObjectExpression(node: Object, parent: Object, printStack: Array<Object>): boolean {
|
export function ObjectExpression(node: Object, parent: Object, printStack: Array<Object>): boolean {
|
||||||
if (t.isExpressionStatement(parent)) {
|
return isFirstInStatement(printStack, {considerArrow: true});
|
||||||
// ({ foo: "bar" });
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return isFirstInStatement(printStack, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function Binary(node: Object, parent: Object): boolean {
|
export function Binary(node: Object, parent: Object): boolean {
|
||||||
@ -152,18 +147,8 @@ export function YieldExpression(node: Object, parent: Object): boolean {
|
|||||||
|
|
||||||
export { YieldExpression as AwaitExpression };
|
export { YieldExpression as AwaitExpression };
|
||||||
|
|
||||||
export function ClassExpression(node: Object, parent: Object): boolean {
|
export function ClassExpression(node: Object, parent: Object, printStack: Array<Object>): boolean {
|
||||||
// (class {});
|
return isFirstInStatement(printStack, {considerDefaultExports: true});
|
||||||
if (t.isExpressionStatement(parent)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// export default (class () {});
|
|
||||||
if (t.isExportDeclaration(parent)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function UnaryLike(node: Object, parent: Object): boolean {
|
export function UnaryLike(node: Object, parent: Object): boolean {
|
||||||
@ -179,17 +164,7 @@ export function UnaryLike(node: Object, parent: Object): boolean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function FunctionExpression(node: Object, parent: Object, printStack: Array<Object>): boolean {
|
export function FunctionExpression(node: Object, parent: Object, printStack: Array<Object>): boolean {
|
||||||
// (function () {});
|
return isFirstInStatement(printStack, {considerDefaultExports: true});
|
||||||
if (t.isExpressionStatement(parent)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// export default (function () {});
|
|
||||||
if (t.isExportDeclaration(parent)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return isFirstInStatement(printStack);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ArrowFunctionExpression(node: Object, parent: Object): boolean {
|
export function ArrowFunctionExpression(node: Object, parent: Object): boolean {
|
||||||
@ -235,7 +210,10 @@ export function AssignmentExpression(node: Object): boolean {
|
|||||||
|
|
||||||
// Walk up the print stack to deterimine if our node can come first
|
// Walk up the print stack to deterimine if our node can come first
|
||||||
// in statement.
|
// in statement.
|
||||||
function isFirstInStatement(printStack: Array<Object>, considerArrow: bool = false): boolean {
|
function isFirstInStatement(printStack: Array<Object>, {
|
||||||
|
considerArrow = false,
|
||||||
|
considerDefaultExports = false
|
||||||
|
} = {}): boolean {
|
||||||
let i = printStack.length - 1;
|
let i = printStack.length - 1;
|
||||||
let node = printStack[i];
|
let node = printStack[i];
|
||||||
i--;
|
i--;
|
||||||
@ -245,6 +223,10 @@ function isFirstInStatement(printStack: Array<Object>, considerArrow: bool = fal
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (considerDefaultExports && t.isExportDefaultDeclaration(parent, { declaration: node })) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (considerArrow && t.isArrowFunctionExpression(parent, { body: node })) {
|
if (considerArrow && t.isArrowFunctionExpression(parent, { body: node })) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,5 +5,16 @@ export { a as b, c as d }
|
|||||||
export { }
|
export { }
|
||||||
export default i = 20
|
export default i = 20
|
||||||
export function test() { }
|
export function test() { }
|
||||||
|
export class test2 { }
|
||||||
export var i = 20
|
export var i = 20
|
||||||
export let i = 42
|
export let i = 42
|
||||||
|
|
||||||
|
export default (function(){})();
|
||||||
|
export default (class {})();
|
||||||
|
export default {};
|
||||||
|
|
||||||
|
export default function test3(){}
|
||||||
|
export default class test4 {}
|
||||||
|
|
||||||
|
export default function(){}
|
||||||
|
export default class {}
|
||||||
|
|||||||
@ -5,5 +5,16 @@ export { a as b, c as d };
|
|||||||
export {};
|
export {};
|
||||||
export default i = 20;
|
export default i = 20;
|
||||||
export function test() {}
|
export function test() {}
|
||||||
|
export class test2 {}
|
||||||
export var i = 20;
|
export var i = 20;
|
||||||
export let i = 42;
|
export let i = 42;
|
||||||
|
|
||||||
|
export default (function () {})();
|
||||||
|
export default (class {})();
|
||||||
|
export default {};
|
||||||
|
|
||||||
|
export default function test3() {}
|
||||||
|
export default class test4 {}
|
||||||
|
|
||||||
|
export default function () {}
|
||||||
|
export default class {}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user