1- import { parse } from "@typescript-eslint/typescript-estree"
21import { namedTypes } from "ast-types"
32import path from "path"
3+ import { parse } from "recast"
4+ import * as tsParser from "recast/parsers/typescript"
45
56import { DBNode } from "../../../core/dbNode"
67import { ISourceFile } from "../sourceFile.types"
@@ -18,10 +19,12 @@ import { VariableDeclarations } from "./syntax/variableDeclarations"
1819export class FileProcessor implements IFileProcessor {
1920 process ( sourceFile : ISourceFile , nodesRef : Record < string , DBNode > ) : void {
2021 const fileContent = sourceFile . read ( )
21- const ast = parse ( fileContent )
22+ const ast = parse ( fileContent , {
23+ parser : tsParser ,
24+ } )
2225
2326 let treeNodes : TreeNode [ ] = [ ]
24- for ( let node of ast . body ) {
27+ for ( let node of ast . program . body ) {
2528 if ( namedTypes . ExportNamedDeclaration . check ( node ) )
2629 node = ( node as any ) . declaration
2730
@@ -30,13 +33,13 @@ export class FileProcessor implements IFileProcessor {
3033 treeNodes . push ( Functions . Handle ( node ) )
3134 else if ( namedTypes . TSInterfaceDeclaration . check ( node ) )
3235 /* Interfaces */
33- treeNodes . push ( Interface . Handle ( node ) )
36+ treeNodes . push ( Interface . Handle ( node as any ) )
3437 else if ( namedTypes . TSTypeAliasDeclaration . check ( node ) )
3538 /* Type Aliases */
3639 treeNodes . push ( TypeAlias . Handle ( node ) )
3740 else if ( namedTypes . TSEnumDeclaration . check ( node ) )
3841 /* Enums */
39- treeNodes . push ( Enums . Handle ( node ) )
42+ treeNodes . push ( Enums . Handle ( node as any ) )
4043 else if ( namedTypes . ClassDeclaration . check ( node ) )
4144 /* Classes */
4245 treeNodes . push ( Classes . Handle ( node ) )
@@ -51,9 +54,9 @@ export class FileProcessor implements IFileProcessor {
5154 // Resolve imports
5255 const parsedImports = new Map < string , string > ( ) // { importName: absolutePath }
5356 {
54- const imports = ast . body
55- . filter ( ( node ) => namedTypes . ImportDeclaration . check ( node ) ) // Filter out all non-import nodes
56- . filter ( ( node ) => ( node as any ) . source . value . startsWith ( "." ) ) // Filter out all library/non-relative imports
57+ const imports = ast . program . body
58+ . filter ( ( node : any ) => namedTypes . ImportDeclaration . check ( node ) ) // Filter out all non-import nodes
59+ . filter ( ( node : any ) => node . source . value . startsWith ( "." ) ) // Filter out all library/non-relative imports
5760 for ( const i of imports ) {
5861 const importName = ( i as any ) . specifiers [ 0 ] . local . name
5962
0 commit comments