@@ -247,43 +247,45 @@ export class MetadataCollector {
247247 // Otherwise don't record the function.
248248 break ;
249249 case ts . SyntaxKind . EnumDeclaration :
250- const enumDeclaration = < ts . EnumDeclaration > node ;
251- let enumValueHolder : { [ name : string ] : MetadataValue } = { } ;
252- const enumName = enumDeclaration . name . text ;
253- let nextDefaultValue : MetadataValue = 0 ;
254- let writtenMembers = 0 ;
255- for ( const member of enumDeclaration . members ) {
256- let enumValue : MetadataValue ;
257- if ( ! member . initializer ) {
258- enumValue = nextDefaultValue ;
259- } else {
260- enumValue = evaluator . evaluateNode ( member . initializer ) ;
250+ if ( node . flags & ts . NodeFlags . Export ) {
251+ const enumDeclaration = < ts . EnumDeclaration > node ;
252+ let enumValueHolder : { [ name : string ] : MetadataValue } = { } ;
253+ const enumName = enumDeclaration . name . text ;
254+ let nextDefaultValue : MetadataValue = 0 ;
255+ let writtenMembers = 0 ;
256+ for ( const member of enumDeclaration . members ) {
257+ let enumValue : MetadataValue ;
258+ if ( ! member . initializer ) {
259+ enumValue = nextDefaultValue ;
260+ } else {
261+ enumValue = evaluator . evaluateNode ( member . initializer ) ;
262+ }
263+ let name : string = undefined ;
264+ if ( member . name . kind == ts . SyntaxKind . Identifier ) {
265+ const identifier = < ts . Identifier > member . name ;
266+ name = identifier . text ;
267+ enumValueHolder [ name ] = enumValue ;
268+ writtenMembers ++ ;
269+ }
270+ if ( typeof enumValue === 'number' ) {
271+ nextDefaultValue = enumValue + 1 ;
272+ } else if ( name ) {
273+ nextDefaultValue = {
274+ __symbolic : 'binary' ,
275+ operator : '+' ,
276+ left : {
277+ __symbolic : 'select' ,
278+ expression : { __symbolic : 'reference' , name : enumName } , name
279+ }
280+ }
281+ } else {
282+ nextDefaultValue = errorSym ( 'Unsuppported enum member name' , member . name ) ;
283+ } ;
261284 }
262- let name : string = undefined ;
263- if ( member . name . kind == ts . SyntaxKind . Identifier ) {
264- const identifier = < ts . Identifier > member . name ;
265- name = identifier . text ;
266- enumValueHolder [ name ] = enumValue ;
267- writtenMembers ++ ;
285+ if ( writtenMembers ) {
286+ if ( ! metadata ) metadata = { } ;
287+ metadata [ enumName ] = enumValueHolder ;
268288 }
269- if ( typeof enumValue === 'number' ) {
270- nextDefaultValue = enumValue + 1 ;
271- } else if ( name ) {
272- nextDefaultValue = {
273- __symbolic : 'binary' ,
274- operator : '+' ,
275- left : {
276- __symbolic : 'select' ,
277- expression : { __symbolic : 'reference' , name : enumName } , name
278- }
279- }
280- } else {
281- nextDefaultValue = errorSym ( 'Unsuppported enum member name' , member . name ) ;
282- } ;
283- }
284- if ( writtenMembers ) {
285- if ( ! metadata ) metadata = { } ;
286- metadata [ enumName ] = enumValueHolder ;
287289 }
288290 break ;
289291 case ts . SyntaxKind . VariableStatement :
0 commit comments