#deno #ast #text #parser #lexing

deno_ast

Source text parsing, lexing, and AST related functionality for Deno

37 releases (24 breaking)

new 0.25.0 Mar 20, 2023
0.23.2 Jan 4, 2023
0.21.0 Nov 10, 2022
0.17.0 Jul 11, 2022
0.5.0 Oct 29, 2021

#232 in Text processing

Download history 2335/week @ 2022-11-28 2082/week @ 2022-12-05 2545/week @ 2022-12-12 2275/week @ 2022-12-19 1317/week @ 2022-12-26 2781/week @ 2023-01-02 3785/week @ 2023-01-09 3866/week @ 2023-01-16 4540/week @ 2023-01-23 4310/week @ 2023-01-30 4721/week @ 2023-02-06 5014/week @ 2023-02-13 5037/week @ 2023-02-20 4558/week @ 2023-02-27 4974/week @ 2023-03-06 4540/week @ 2023-03-13

19,435 downloads per month
Used in 31 crates (25 directly)

MIT license

175KB
5K SLoC

deno_ast

Discord Chat

Source text parsing, lexing, and AST related functionality for Deno.

use deno_ast::parse_module;
use deno_ast::MediaType;
use deno_ast::ParseParams;
use deno_ast::SourceTextInfo;

let source_text = "class MyClass {}";
let text_info = SourceTextInfo::new(source_text.into());
let parsed_source = parse_module(ParseParams {
  specifier: "file:///my_file.ts".to_string(),
  media_type: MediaType::TypeScript,
  text_info,
  capture_tokens: true,
  maybe_syntax: None,
  scope_analysis: false,
}).expect("should parse");

// returns the comments
parsed_source.comments();
// returns the tokens if captured
parsed_source.tokens();
// returns the module (AST)
parsed_source.module();
// returns the `SourceTextInfo`
parsed_source.text_info();

Dependencies

~9–15MB
~324K SLoC