This repository was archived by the owner on Jan 19, 2019. It is now read-only.
File tree 6 files changed +404
-14
lines changed
fixtures/typescript/basics
6 files changed +404
-14
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 @@ -1994,6 +1994,36 @@ module.exports = function convert(config) {
1994
1994
} ) ;
1995
1995
break ;
1996
1996
1997
+ case SyntaxKind . EnumDeclaration : {
1998
+ Object . assign ( result , {
1999
+ type : AST_NODE_TYPES . TSEnumDeclaration ,
2000
+ id : convertChild ( node . name ) ,
2001
+ members : node . members . map ( convertChild )
2002
+ } ) ;
2003
+ // check for exports
2004
+ result = nodeUtils . fixExports ( node , result , ast ) ;
2005
+ /**
2006
+ * Semantically, decorators are not allowed on enum declarations,
2007
+ * but the TypeScript compiler will parse them and produce a valid AST,
2008
+ * so we handle them here too.
2009
+ */
2010
+ if ( node . decorators ) {
2011
+ result . decorators = convertDecorators ( node . decorators ) ;
2012
+ }
2013
+ break ;
2014
+ }
2015
+
2016
+ case SyntaxKind . EnumMember : {
2017
+ Object . assign ( result , {
2018
+ type : AST_NODE_TYPES . TSEnumMember ,
2019
+ id : convertChild ( node . name )
2020
+ } ) ;
2021
+ if ( node . initializer ) {
2022
+ result . initializer = convertChild ( node . initializer ) ;
2023
+ }
2024
+ break ;
2025
+ }
2026
+
1997
2027
default :
1998
2028
deeplyCopy ( ) ;
1999
2029
}
Original file line number Diff line number Diff line change 19
19
"license" : " BSD-2-Clause" ,
20
20
"devDependencies" : {
21
21
"babel-code-frame" : " ^6.22.0" ,
22
- "babylon" : " ^7.0.0-beta.19 " ,
22
+ "babylon" : " ^7.0.0-beta.20 " ,
23
23
"eslint" : " 3.19.0" ,
24
24
"eslint-config-eslint" : " 4.0.0" ,
25
25
"eslint-plugin-node" : " 4.2.2" ,
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