@@ -5,9 +5,10 @@ import { FunctionVisitor, TransformationContext } from "../../context";
55import { AnnotationKind , getTypeAnnotations } from "../../utils/annotations" ;
66import { annotationRemoved } from "../../utils/diagnostics" ;
77import {
8- createDefaultExportIdentifier ,
8+ createDefaultExportExpression ,
99 createExportedIdentifier ,
1010 hasDefaultExportModifier ,
11+ hasExportModifier ,
1112 isSymbolExported ,
1213} from "../../utils/export" ;
1314import { createSelfIdentifier , unwrapVisitorResult } from "../../utils/lua-ast" ;
@@ -30,7 +31,7 @@ import { getExtendedNode, getExtendedType, isStaticNode } from "./utils";
3031export const transformClassDeclaration : FunctionVisitor < ts . ClassLikeDeclaration > = ( declaration , context ) => {
3132 // If declaration is a default export, transform to export variable assignment instead
3233 if ( hasDefaultExportModifier ( declaration ) ) {
33- const left = createExportedIdentifier ( context , createDefaultExportIdentifier ( declaration ) ) ;
34+ const left = createDefaultExportExpression ( declaration ) ;
3435 const right = transformClassAsExpression ( declaration , context ) ;
3536 return [ lua . createAssignmentStatement ( left , right , declaration ) ] ;
3637 }
@@ -220,6 +221,15 @@ function transformClassLikeDeclaration(
220221 ) ;
221222 const decoratingStatement = lua . createAssignmentStatement ( localClassName , decoratingExpression ) ;
222223 result . push ( decoratingStatement ) ;
224+
225+ if ( hasExportModifier ( classDeclaration ) ) {
226+ const exportExpression = hasDefaultExportModifier ( classDeclaration )
227+ ? createDefaultExportExpression ( classDeclaration )
228+ : createExportedIdentifier ( context , className ) ;
229+
230+ const classAssignment = lua . createAssignmentStatement ( exportExpression , localClassName ) ;
231+ result . push ( classAssignment ) ;
232+ }
223233 }
224234
225235 superInfo . pop ( ) ;
0 commit comments