Merge pull request #101 from demoneaux/export-semicolons

Add semicolons to `export` declarations.
This commit is contained in:
James Long authored and GitHub committed 2017-01-11 09:59:42 -05:00
commit 2d99f5d281
9 files changed
+41 -35

No files matched your search

+7 -1
View File
@@ -443,7 +443,7 @@ function genericPrintNoParens(path, options, print) {
parts.push(" as ", path.call(print, "exported"));
}
parts.push(" from ", path.call(print, "source"));
parts.push(" from ", path.call(print, "source"), ";");
return concat(parts);
case "ExportNamespaceSpecifier":
@@ -1819,6 +1819,10 @@ function printExportDeclaration(path, options, print) {
if (decl.declaration) {
parts.push(path.call(print, "declaration"));
if (decl.type === "ExportDefaultDeclaration" && decl.declaration.type == "Identifier") {
parts.push(";");
}
} else if (decl.specifiers && decl.specifiers.length > 0) {
if (
decl.specifiers.length === 1 &&
@@ -1837,6 +1841,8 @@ function printExportDeclaration(path, options, print) {
if (decl.source) {
parts.push(" from ", path.call(print, "source"));
}
parts.push(';');
}
return concat(parts);
@@ -178,7 +178,7 @@ declare export default class FooImpl { givesANum(): number }
// Regression test for https://github.com/facebook/flow/issues/511
//
// Default-exported class should also be available in local scope
declare export { FooImpl as Foo }
declare export { FooImpl as Foo };
declare export function getAFoo(): FooImpl;"
`;
@@ -335,7 +335,7 @@ declare export {
* @flow
*/
declare export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\""
declare export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\";"
`;
exports[`test ES6_ExportFrom_Intermediary2.js 1`] = `
@@ -354,7 +354,7 @@ declare export {
* @flow
*/
declare export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\""
declare export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\";"
`;
exports[`test ES6_ExportFrom_Source1.js 1`] = `
@@ -427,10 +427,10 @@ var specifierNumber3 = 3;
var groupedSpecifierNumber1 = 1;
var groupedSpecifierNumber2 = 2;
declare export { specifierNumber1 }
declare export { specifierNumber2 as specifierNumber2Renamed }
declare export { specifierNumber3 }
declare export { groupedSpecifierNumber1, groupedSpecifierNumber2 }
declare export { specifierNumber1 };
declare export { specifierNumber2 as specifierNumber2Renamed };
declare export { specifierNumber3 };
declare export { groupedSpecifierNumber1, groupedSpecifierNumber2 };
declare export function givesANumber(): number;
declare export class NumberGenerator { givesANumber(): number }
@@ -470,9 +470,9 @@ var specifierNumber5 = 2;
var groupedSpecifierNumber3 = 1;
var groupedSpecifierNumber4 = 2;
declare export { specifierNumber4 }
declare export { specifierNumber5 as specifierNumber5Renamed }
declare export { groupedSpecifierNumber3, groupedSpecifierNumber4 }
declare export { specifierNumber4 };
declare export { specifierNumber5 as specifierNumber5Renamed };
declare export { groupedSpecifierNumber3, groupedSpecifierNumber4 };
declare export function givesANumber2(): number;
declare export class NumberGenerator2 { givesANumber(): number }
@@ -330,7 +330,7 @@ export * from \"ES6_ExportAllFrom_Source1\";
* @flow
*/
export * from \"ES6_ExportAllFrom_Source1\""
export * from \"ES6_ExportAllFrom_Source1\";"
`;
exports[`test ES6_ExportAllFrom_Intermediary2.js 1`] = `
@@ -346,7 +346,7 @@ export * from \"ES6_ExportAllFrom_Source2\";
* @flow
*/
export * from \"ES6_ExportAllFrom_Source2\""
export * from \"ES6_ExportAllFrom_Source2\";"
`;
exports[`test ES6_ExportAllFrom_Source1.js 1`] = `
@@ -389,8 +389,8 @@ export * from \"./ES6_ExportAllFrom_Source2\";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// @flow
export * from \"./ES6_ExportAllFrom_Source1\"
export * from \"./ES6_ExportAllFrom_Source2\""
export * from \"./ES6_ExportAllFrom_Source1\";
export * from \"./ES6_ExportAllFrom_Source2\";"
`;
exports[`test ES6_ExportFrom_Intermediary1.js 1`] = `
@@ -409,7 +409,7 @@ export {
* @flow
*/
export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\""
export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\";"
`;
exports[`test ES6_ExportFrom_Intermediary2.js 1`] = `
@@ -428,7 +428,7 @@ export {
* @flow
*/
export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\""
export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\";"
`;
exports[`test ES6_ExportFrom_Source1.js 1`] = `
@@ -498,10 +498,10 @@ var specifierNumber3 = 3;
var groupedSpecifierNumber1 = 1;
var groupedSpecifierNumber2 = 2;
export { specifierNumber1 }
export { specifierNumber2 as specifierNumber2Renamed }
export { specifierNumber3 }
export { groupedSpecifierNumber1, groupedSpecifierNumber2 }
export { specifierNumber1 };
export { specifierNumber2 as specifierNumber2Renamed };
export { specifierNumber3 };
export { groupedSpecifierNumber1, groupedSpecifierNumber2 };
export function givesANumber(): number {
return 42;
@@ -550,9 +550,9 @@ var specifierNumber5 = 2;
var groupedSpecifierNumber3 = 1;
var groupedSpecifierNumber4 = 2;
export { specifierNumber4 }
export { specifierNumber5 as specifierNumber5Renamed }
export { groupedSpecifierNumber3, groupedSpecifierNumber4 }
export { specifierNumber4 };
export { specifierNumber5 as specifierNumber5Renamed };
export { groupedSpecifierNumber3, groupedSpecifierNumber4 };
export function givesANumber2(): number {
return 42;
@@ -32,7 +32,7 @@ declare module \"CJS_Clobbered\" {
}
declare module \"ES\" {
declare var strHidden: string;
declare export { strHidden as str3 }
declare export { strHidden as str3 };
declare export var num3: number;
declare export class C {}
declare export type T = number;
@@ -101,12 +101,12 @@ var a: inlinedType1 = 42;
var b: inlinedType1 = \"asdf\";
// Error: string ~> number
type standaloneType1 = number;
export type { standaloneType1 }
export type { standaloneType1 };
type standaloneType2 = number;
export { standaloneType2 }
export { standaloneType2 };
// Error: Missing \`type\` keyword
export type { talias1, talias2 as talias3, IFoo2 } from \"./types_only2\"
export type { talias1, talias2 as talias3, IFoo2 } from \"./types_only2\";
export interface IFoo { prop: number }
"
@@ -9,7 +9,7 @@ export default x;
const x = \"foo\";
export default x"
export default x;"
`;
exports[`test exports_named.js 1`] = `
@@ -100,7 +100,7 @@ class ClassFoo1 {
}
}
export default ClassFoo1
export default ClassFoo1;
export var foo1Inst = new ClassFoo1();"
`;
@@ -155,7 +155,7 @@ class ClassFoo2 {
}
}
export { ClassFoo2 }
export { ClassFoo2 };
export var foo2Inst = new ClassFoo2();"
`;
@@ -345,5 +345,5 @@ export default ClassFoo6;
class ClassFoo6 {}
export default ClassFoo6"
export default ClassFoo6;"
`;
@@ -87,7 +87,7 @@ class ClassFoo1 {
}
}
export default ClassFoo1"
export default ClassFoo1;"
`;
exports[`test ExportDefault_Number.js 1`] = `
@@ -150,7 +150,7 @@ class ClassFoo2 {
}
}
export { ClassFoo2 }"
export { ClassFoo2 };"
`;
exports[`test ExportNamed_Multi.js 1`] = `
@@ -11,7 +11,7 @@ export {Foo};
declare class Foo { bar?: () => string }
export { Foo }"
export { Foo };"
`;
exports[`test test.js 1`] = `