pecto_typescript/
parser.rs1use tree_sitter::{Parser, Tree};
2
3pub fn typescript_parser() -> Parser {
5 let mut parser = Parser::new();
6 parser
7 .set_language(&tree_sitter_typescript::LANGUAGE_TYPESCRIPT.into())
8 .expect("Failed to load TypeScript grammar");
9 parser
10}
11
12pub fn tsx_parser() -> Parser {
14 let mut parser = Parser::new();
15 parser
16 .set_language(&tree_sitter_typescript::LANGUAGE_TSX.into())
17 .expect("Failed to load TSX grammar");
18 parser
19}
20
21pub fn parse_typescript(source: &str, is_tsx: bool) -> Option<Tree> {
23 let mut parser = if is_tsx {
24 tsx_parser()
25 } else {
26 typescript_parser()
27 };
28 parser.parse(source, None)
29}