11"use strict" ;
2- var __createBinding = ( this && this . __createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
3- if ( k2 === undefined ) k2 = k ;
4- var desc = Object . getOwnPropertyDescriptor ( m , k ) ;
5- if ( ! desc || ( "get" in desc ? ! m . __esModule : desc . writable || desc . configurable ) ) {
6- desc = { enumerable : true , get : function ( ) { return m [ k ] ; } } ;
7- }
8- Object . defineProperty ( o , k2 , desc ) ;
9- } ) : ( function ( o , m , k , k2 ) {
10- if ( k2 === undefined ) k2 = k ;
11- o [ k2 ] = m [ k ] ;
12- } ) ) ;
13- var __setModuleDefault = ( this && this . __setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
14- Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
15- } ) : function ( o , v ) {
16- o [ "default" ] = v ;
17- } ) ;
18- var __importStar = ( this && this . __importStar ) || function ( mod ) {
19- if ( mod && mod . __esModule ) return mod ;
20- var result = { } ;
21- if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . prototype . hasOwnProperty . call ( mod , k ) ) __createBinding ( result , mod , k ) ;
22- __setModuleDefault ( result , mod ) ;
23- return result ;
24- } ;
252var __importDefault = ( this && this . __importDefault ) || function ( mod ) {
263 return ( mod && mod . __esModule ) ? mod : { "default" : mod } ;
274} ;
285Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
296const websocket_1 = __importDefault ( require ( "./websocket" ) ) ;
30- const fs = __importStar ( require ( "fs" ) ) ;
31- const path_1 = __importDefault ( require ( "path" ) ) ;
32- const tree_sitter_1 = __importDefault ( require ( "tree-sitter" ) ) ;
33- const tree_sitter_javascript_1 = __importDefault ( require ( "tree-sitter-javascript" ) ) ;
347/**
358 * A utility module for working with code.
369 */
@@ -41,75 +14,72 @@ const cbcodeutils = {
4114 * @returns {Promise<GetJsTreeResponse> } A promise that resolves with the JS tree response.
4215 */
4316 getJsTree : ( filePath ) => {
17+ // return new Promise( async (resolve, reject) => {
18+ // cbws.getWebsocket.send(JSON.stringify({
19+ // "type": "settingEvent",
20+ // "action": "getProjectPath"
21+ // }));
22+ // cbws.getWebsocket.on('message', (data: string) => {
23+ // const response = JSON.parse(data);
24+ // if (response.type === "getProjectPathResponse") {
25+ // // resolve(response);
26+ // try {
27+ // let pathInput= response.projectPath;
28+ // let parser= new Parser();
29+ // // Initialize the parser with the JavaScript language
30+ // parser.setLanguage(JavaScript);
31+ // const trees = [];
32+ // const functionNodes = [];
33+ // const processDirectory = (directory:any) => {
34+ // console.log("isdir")
35+ // // Read all files in the directory
36+ // const files = fs.readdirSync(directory, { withFileTypes: true });
37+ // files.forEach(file => {
38+ // if (file.isDirectory()) {
39+ // if (file.name !== 'node_modules') { // Ignore node_modules directory
40+ // processDirectory(path.join(directory, file.name)); // Recursive call for subdirectories
41+ // }
42+ // } else if (path.extname(file.name) === '.js') {
43+ // const code = fs.readFileSync(path.join(directory, file.name), 'utf-8');
44+ // console.log(code);
45+ // let tree:any = parser.parse(code);
46+ // tree.rootNode.path = path.join(directory, file.name); // Set file path for t
47+ // trees.push(tree);
48+ // }
49+ // });
50+ // };
51+ // if (fs.lstatSync(pathInput).isDirectory()) {
52+ // processDirectory(pathInput);
53+ // } else if (path.extname(pathInput) === '.js') {
54+ // // Read a single JavaScript file
55+ // const code = fs.readFileSync(pathInput, 'utf-8');
56+ // let tree:any = parser.parse(code);
57+ // tree.rootNode.path = pathInput; // Set file path for t
58+ // trees.push(tree);
59+ // }
60+ // resolve({ event: 'GetJsTreeResponse',payload:trees}); // Return an array of abstract syntax trees (ASTs)
61+ // } catch (error) {
62+ // console.error('An error occurred:', error);
63+ // return { event: 'GetJsTreeResponse',payload:null}; // Return null in case of error
64+ // }
65+ // }
66+ // });
67+ // });
4468 return new Promise ( async ( resolve , reject ) => {
4569 websocket_1 . default . getWebsocket . send ( JSON . stringify ( {
46- "type" : "settingEvent" ,
47- "action" : "getProjectPath"
70+ "type" : "codeEvent" ,
71+ "action" : "getJsTree" ,
72+ payload : {
73+ filePath
74+ }
4875 } ) ) ;
4976 websocket_1 . default . getWebsocket . on ( 'message' , ( data ) => {
5077 const response = JSON . parse ( data ) ;
51- if ( response . type === "getProjectPathResponse" ) {
52- // resolve(response);
53- try {
54- let pathInput = response . projectPath ;
55- let parser = new tree_sitter_1 . default ( ) ;
56- // Initialize the parser with the JavaScript language
57- parser . setLanguage ( tree_sitter_javascript_1 . default ) ;
58- const trees = [ ] ;
59- const functionNodes = [ ] ;
60- const processDirectory = ( directory ) => {
61- console . log ( "isdir" ) ;
62- // Read all files in the directory
63- const files = fs . readdirSync ( directory , { withFileTypes : true } ) ;
64- files . forEach ( file => {
65- if ( file . isDirectory ( ) ) {
66- if ( file . name !== 'node_modules' ) { // Ignore node_modules directory
67- processDirectory ( path_1 . default . join ( directory , file . name ) ) ; // Recursive call for subdirectories
68- }
69- }
70- else if ( path_1 . default . extname ( file . name ) === '.js' ) {
71- const code = fs . readFileSync ( path_1 . default . join ( directory , file . name ) , 'utf-8' ) ;
72- console . log ( code ) ;
73- let tree = parser . parse ( code ) ;
74- tree . rootNode . path = path_1 . default . join ( directory , file . name ) ; // Set file path for t
75- trees . push ( tree ) ;
76- }
77- } ) ;
78- } ;
79- if ( fs . lstatSync ( pathInput ) . isDirectory ( ) ) {
80- processDirectory ( pathInput ) ;
81- }
82- else if ( path_1 . default . extname ( pathInput ) === '.js' ) {
83- // Read a single JavaScript file
84- const code = fs . readFileSync ( pathInput , 'utf-8' ) ;
85- let tree = parser . parse ( code ) ;
86- tree . rootNode . path = pathInput ; // Set file path for t
87- trees . push ( tree ) ;
88- }
89- resolve ( { event : 'GetJsTreeResponse' , payload : trees } ) ; // Return an array of abstract syntax trees (ASTs)
90- }
91- catch ( error ) {
92- console . error ( 'An error occurred:' , error ) ;
93- return { event : 'GetJsTreeResponse' , payload : null } ; // Return null in case of error
94- }
78+ if ( response . type === "getJsTreeResponse" ) {
79+ resolve ( response ) ; // Resolve the Promise with the response data
9580 }
9681 } ) ;
9782 } ) ;
98- // return new Promise(async (resolve, reject) => {
99- // cbws.getWebsocket.send(JSON.stringify({
100- // "type": "codeEvent",
101- // "action": "getJsTree",
102- // payload: {
103- // filePath
104- // }
105- // }));
106- // cbws.getWebsocket.on('message', (data: string) => {
107- // const response = JSON.parse(data);
108- // if (response.type === "getJsTreeResponse") {
109- // resolve(response); // Resolve the Promise with the response data
110- // }
111- // });
112- // });
11383 } ,
11484 /**
11585 * Retrieves all files as Markdown.
0 commit comments