@@ -3012,6 +3012,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
3012
3012
return result ;
3013
3013
}
3014
3014
3015
+ function emitEs6ExportDefaultCompat ( node : Node ) {
3016
+ if ( node . parent . kind === SyntaxKind . SourceFile ) {
3017
+ Debug . assert ( ! ! ( node . flags & NodeFlags . Default ) || node . kind === SyntaxKind . ExportAssignment ) ;
3018
+ // only allow export default at a source file level
3019
+ if ( compilerOptions . module === ModuleKind . CommonJS || compilerOptions . module === ModuleKind . AMD || compilerOptions . module === ModuleKind . UMD ) {
3020
+ if ( ! currentSourceFile . symbol . exports [ "___esModule" ] ) {
3021
+ if ( languageVersion === ScriptTarget . ES5 ) {
3022
+ // default value of configurable, enumerable, writable are `false`.
3023
+ write ( "Object.defineProperty(exports, \"__esModule\", { value: true });" ) ;
3024
+ writeLine ( ) ;
3025
+ }
3026
+ else if ( languageVersion === ScriptTarget . ES3 ) {
3027
+ write ( "exports.__esModule = true;" ) ;
3028
+ writeLine ( ) ;
3029
+ }
3030
+ }
3031
+ }
3032
+ }
3033
+ }
3034
+
3015
3035
function emitExportMemberAssignment ( node : FunctionLikeDeclaration | ClassDeclaration ) {
3016
3036
if ( node . flags & NodeFlags . Export ) {
3017
3037
writeLine ( ) ;
@@ -3034,9 +3054,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
3034
3054
}
3035
3055
else {
3036
3056
if ( node . flags & NodeFlags . Default ) {
3057
+ emitEs6ExportDefaultCompat ( node ) ;
3037
3058
if ( languageVersion === ScriptTarget . ES3 ) {
3038
3059
write ( "exports[\"default\"]" ) ;
3039
- } else {
3060
+ }
3061
+ else {
3040
3062
write ( "exports.default" ) ;
3041
3063
}
3042
3064
}
@@ -5538,6 +5560,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
5538
5560
write ( ")" ) ;
5539
5561
}
5540
5562
else {
5563
+ emitEs6ExportDefaultCompat ( node ) ;
5541
5564
emitContainingModuleName ( node ) ;
5542
5565
if ( languageVersion === ScriptTarget . ES3 ) {
5543
5566
write ( "[\"default\"] = " ) ;
0 commit comments