5
5
* @copyright jQuery Foundation and other contributors, https://jquery.org/
6
6
* MIT License
7
7
*/
8
- import { convert } from './convert' ;
8
+ import convert , { getASTMaps , resetASTMaps } from './convert' ;
9
9
import { convertComments } from './convert-comments' ;
10
10
import nodeUtils from './node-utils' ;
11
+ import ts from 'typescript' ;
11
12
import { Extra } from './temp-types-based-on-js-source' ;
12
13
13
14
/**
@@ -23,13 +24,17 @@ function convertError(error: any) {
23
24
) ;
24
25
}
25
26
26
- export default ( ast : any , extra : Extra ) => {
27
+ export default (
28
+ ast : ts . SourceFile ,
29
+ extra : Extra ,
30
+ shouldProvideParserServices : boolean
31
+ ) => {
27
32
/**
28
33
* The TypeScript compiler produced fundamental parse errors when parsing the
29
34
* source.
30
35
*/
31
- if ( ast . parseDiagnostics . length ) {
32
- throw convertError ( ast . parseDiagnostics [ 0 ] ) ;
36
+ if ( ( ast as any ) . parseDiagnostics . length ) {
37
+ throw convertError ( ( ast as any ) . parseDiagnostics [ 0 ] ) ;
33
38
}
34
39
35
40
/**
@@ -41,7 +46,8 @@ export default (ast: any, extra: Extra) => {
41
46
ast,
42
47
additionalOptions : {
43
48
errorOnUnknownASTType : extra . errorOnUnknownASTType || false ,
44
- useJSXTextNode : extra . useJSXTextNode || false
49
+ useJSXTextNode : extra . useJSXTextNode || false ,
50
+ shouldProvideParserServices
45
51
}
46
52
} ) ;
47
53
@@ -59,5 +65,11 @@ export default (ast: any, extra: Extra) => {
59
65
estree . comments = convertComments ( ast , extra . code ) ;
60
66
}
61
67
62
- return estree ;
68
+ let astMaps = undefined ;
69
+ if ( shouldProvideParserServices ) {
70
+ astMaps = getASTMaps ( ) ;
71
+ resetASTMaps ( ) ;
72
+ }
73
+
74
+ return { estree, astMaps } ;
63
75
} ;
0 commit comments