This repository was archived by the owner on Jan 19, 2019. It is now read-only.
File tree 5 files changed +403
-13
lines changed
fixtures/typescript/basics
5 files changed +403
-13
lines changed Original file line number Diff line number Diff line change @@ -109,6 +109,7 @@ module.exports = {
109
109
TSConstructSignature : "TSConstructSignature" ,
110
110
TSDeclareKeyword : "TSDeclareKeyword" ,
111
111
TSEnumDeclaration : "TSEnumDeclaration" ,
112
+ TSEnumMember : "TSEnumMember" ,
112
113
TSExportAssignment : "TSExportAssigment" ,
113
114
TSIndexSignature : "TSIndexSignature" ,
114
115
TSInterfaceBody : "TSInterfaceBody" ,
Original file line number Diff line number Diff line change @@ -2000,6 +2000,36 @@ module.exports = function convert(config) {
2000
2000
} ) ;
2001
2001
break ;
2002
2002
2003
+ case SyntaxKind . EnumDeclaration : {
2004
+ Object . assign ( result , {
2005
+ type : AST_NODE_TYPES . TSEnumDeclaration ,
2006
+ id : convertChild ( node . name ) ,
2007
+ members : node . members . map ( convertChild )
2008
+ } ) ;
2009
+ // check for exports
2010
+ result = nodeUtils . fixExports ( node , result , ast ) ;
2011
+ /**
2012
+ * Semantically, decorators are not allowed on enum declarations,
2013
+ * but the TypeScript compiler will parse them and produce a valid AST,
2014
+ * so we handle them here too.
2015
+ */
2016
+ if ( node . decorators ) {
2017
+ result . decorators = convertDecorators ( node . decorators ) ;
2018
+ }
2019
+ break ;
2020
+ }
2021
+
2022
+ case SyntaxKind . EnumMember : {
2023
+ Object . assign ( result , {
2024
+ type : AST_NODE_TYPES . TSEnumMember ,
2025
+ id : convertChild ( node . name )
2026
+ } ) ;
2027
+ if ( node . initializer ) {
2028
+ result . initializer = convertChild ( node . initializer ) ;
2029
+ }
2030
+ break ;
2031
+ }
2032
+
2003
2033
default :
2004
2034
deeplyCopy ( ) ;
2005
2035
}
Original file line number Diff line number Diff line change @@ -421,7 +421,12 @@ const fixturePatternsToTest = [
421
421
"typescript/basics/async-function-expression.src.ts" ,
422
422
"typescript/basics/async-function-with-var-declaration.src.ts" ,
423
423
"typescript/basics/function-with-await.src.ts" ,
424
- "typescript/errorRecovery/class-extends-empty-implements.src.ts"
424
+ "typescript/errorRecovery/class-extends-empty-implements.src.ts" ,
425
+
426
+ {
427
+ pattern : "typescript/basics/export-named-enum.src.ts" ,
428
+ config : { babylonParserOptions : { sourceType : "module" } }
429
+ }
425
430
426
431
/**
427
432
* TypeScript-specific tests taken from "errorRecovery". Babylon is not being as forgiving as the TypeScript compiler here.
Original file line number Diff line number Diff line change
1
+ export enum Foo {
2
+ foo = 1 ,
3
+ bar
4
+ }
You can’t perform that action at this time.
0 commit comments