Skip to content

Commit fc01df4

Browse files
committed
fix build
1 parent 74f7c86 commit fc01df4

File tree

3 files changed

+65
-36
lines changed

3 files changed

+65
-36
lines changed

app/api/repo/route.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import http from 'isomorphic-git/http/node';
55
import Parser from 'web-tree-sitter';
66

77
import { promises as fs } from 'fs';
8-
import { Language, SyntaxNode } from 'web-tree-sitter';
8+
import { SyntaxNode } from 'web-tree-sitter';
99
import { NextRequest, NextResponse } from "next/server";
1010
import { FalkorDB, Graph } from 'falkordb';
1111
import { RESPOSITORIES } from './repositories';
12-
import { Python } from '@/lib/languages/python';
12+
import { Language } from '@/lib/languages/language';
1313

1414
const GraphOps = require('./graph_ops');
1515
const LIMITED_MODE = process.env.NEXT_PUBLIC_MODE?.toLowerCase() === 'limited';
@@ -18,7 +18,7 @@ const LIMITED_MODE = process.env.NEXT_PUBLIC_MODE?.toLowerCase() === 'limited';
1818
// Tree-Sitter queries
1919
//-----------------------------------------------------------------------------
2020
let parser: Parser;
21-
let language: Python = new Python();
21+
let language: Language;
2222

2323
// Process Class declaration
2424
async function processClassDeclaration
@@ -254,6 +254,10 @@ async function InitializeTreeSitter() {
254254
});
255255

256256
parser = new Parser();
257+
258+
const {Python} = await import('@/lib/languages/python');
259+
260+
language = new Python();
257261
parser.setLanguage(language.language);
258262
}
259263

lib/languages/language.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import path from 'path';
2+
import Parser from 'web-tree-sitter';
3+
4+
const PYTHON_LANG = await Parser.Language.load(path.join(process.cwd(), 'app/parsers/tree-sitter-python.wasm'));
5+
6+
//-----------------------------------------------------------------------------
7+
// Tree-Sitter queries
8+
//-----------------------------------------------------------------------------
9+
export class Language {
10+
11+
public language: Parser.Language;
12+
13+
// class definition tree-sitter query
14+
// responsible for matching class definition, in addition to extracting the class name
15+
public class_definition_query: Parser.Query;
16+
17+
// function definition tree-sitter query
18+
// responsible for matching function definition, in addition to extracting the function name
19+
public function_definition_query: Parser.Query;
20+
21+
// function call tree-sitter query
22+
// responsible for matching function calls, in addition to extracting the callee function name
23+
public function_call_query: Parser.Query;
24+
25+
// function call tree-sitter query
26+
// responsible for matching function calls of type self.f()
27+
// in addition to extracting the callee function name
28+
public function_attr_call_query: Parser.Query;
29+
30+
// identifier tree-sitter query
31+
// responsible for matching Identifier nodes
32+
public identifier_query: Parser.Query;
33+
34+
constructor(language: Parser.Language,
35+
class_definition_query: Parser.Query,
36+
function_definition_query: Parser.Query,
37+
function_call_query: Parser.Query,
38+
function_attr_call_query: Parser.Query,
39+
identifier_query: Parser.Query) {
40+
41+
this.language = language;
42+
this.class_definition_query = class_definition_query;
43+
this.function_definition_query = function_definition_query;
44+
this.function_call_query = function_call_query;
45+
this.function_attr_call_query = function_attr_call_query;
46+
this.identifier_query = identifier_query;
47+
}
48+
49+
}

lib/languages/python.ts

Lines changed: 9 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,21 @@
11
import path from 'path';
22
import Parser from 'web-tree-sitter';
3-
import { Language } from 'web-tree-sitter';
3+
import { Language } from './language';
44

55
const PYTHON_LANG = await Parser.Language.load(path.join(process.cwd(), 'app/parsers/tree-sitter-python.wasm'));
66

77
//-----------------------------------------------------------------------------
88
// Tree-Sitter queries
99
//-----------------------------------------------------------------------------
10-
export class Python {
11-
12-
public language: Language;
13-
14-
// class definition tree-sitter query
15-
// responsible for matching class definition, in addition to extracting the class name
16-
public class_definition_query: Parser.Query;
17-
18-
// function definition tree-sitter query
19-
// responsible for matching function definition, in addition to extracting the function name
20-
public function_definition_query: Parser.Query;
21-
22-
// function call tree-sitter query
23-
// responsible for matching function calls, in addition to extracting the callee function name
24-
public function_call_query: Parser.Query;
25-
26-
// function call tree-sitter query
27-
// responsible for matching function calls of type self.f()
28-
// in addition to extracting the callee function name
29-
public function_attr_call_query: Parser.Query;
30-
31-
// identifier tree-sitter query
32-
// responsible for matching Identifier nodes
33-
public identifier_query: Parser.Query;
10+
export class Python extends Language {
3411

3512
constructor() {
36-
this.language = PYTHON_LANG;
37-
this.class_definition_query = PYTHON_LANG.query(`(class_definition name: (identifier) @class-name) @class-definition`);
38-
this.function_definition_query = PYTHON_LANG.query(`((function_definition name: (identifier) @function-name parameters: (parameters) @parameters) @function-definition)`);
39-
this.function_call_query = PYTHON_LANG.query(`((call function: (identifier) @function-name) @function-call)`);
40-
this.function_attr_call_query = PYTHON_LANG.query(`((call function: (attribute object: (identifier) attribute: (identifier) @function-name )) @function-call)`);
41-
this.identifier_query = PYTHON_LANG.query(`((identifier) @identifier)`);
42-
13+
super(
14+
PYTHON_LANG,
15+
PYTHON_LANG.query(`(class_definition name: (identifier) @class-name) @class-definition`),
16+
PYTHON_LANG.query(`((function_definition name: (identifier) @function-name parameters: (parameters) @parameters) @function-definition)`),
17+
PYTHON_LANG.query(`((call function: (identifier) @function-name) @function-call)`),
18+
PYTHON_LANG.query(`((call function: (attribute object: (identifier) attribute: (identifier) @function-name )) @function-call)`),
19+
PYTHON_LANG.query(`((identifier) @identifier)`))
4320
}
44-
4521
}

0 commit comments

Comments
 (0)