1
1
import fs from "fs" ;
2
2
import Parser from "tree-sitter" ;
3
- import { extractJavascriptFileImports } from "./languages/javascript/imports" ;
4
3
5
4
import { resolveFilePath } from "./file" ;
6
5
import { DependencyTree , Group } from "./types" ;
7
6
import { Endpoint } from "./types" ;
8
7
import { getParserLanguageFromFile } from "./treeSitter" ;
9
8
import { parseNanoApiAnnotation } from "./annotations" ;
10
9
import { getAnnotationNodes } from "./languages/javascript/annotations" ;
10
+ import { getJavascriptImports } from "./languages/javascript/imports" ;
11
11
12
12
export function getDependencyTree ( filePath : string ) : DependencyTree {
13
13
const sourceCode = fs . readFileSync ( filePath , "utf8" ) ;
@@ -24,10 +24,14 @@ export function getDependencyTree(filePath: string): DependencyTree {
24
24
parser . setLanguage ( language ) ;
25
25
26
26
if ( [ "javascript" , "typescript" ] . includes ( language . name ) ) {
27
- const imports = extractJavascriptFileImports ( parser , sourceCode ) ;
27
+ let imports = getJavascriptImports (
28
+ parser ,
29
+ parser . parse ( sourceCode ) . rootNode ,
30
+ ) ;
31
+ imports = imports . filter ( ( importPath ) => importPath . source . startsWith ( "." ) ) ;
28
32
29
33
imports . forEach ( ( importPath ) => {
30
- const resolvedPath = resolveFilePath ( importPath , filePath ) ;
34
+ const resolvedPath = resolveFilePath ( importPath . source , filePath ) ;
31
35
if ( resolvedPath && fs . existsSync ( resolvedPath ) ) {
32
36
dependencyTree . children . push ( getDependencyTree ( resolvedPath ) ) ;
33
37
}
0 commit comments