biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsVariableStatement {
            declaration: JsVariableDeclaration {
                await_token: missing (optional),
                kind: VAR_KW@0..4 "var" [] [Whitespace(" ")],
                declarators: JsVariableDeclaratorList [
                    JsVariableDeclarator {
                        id: JsIdentifierBinding {
                            name_token: IDENT@4..5 "x" [] [],
                        },
                        variable_annotation: TsTypeAnnotation {
                            colon_token: COLON@5..7 ":" [] [Whitespace(" ")],
                            ty: TsMappedType {
                                l_curly_token: L_CURLY@7..8 "{" [] [],
                                readonly_modifier: TsMappedTypeReadonlyModifierClause {
                                    operator_token: missing (optional),
                                    readonly_token: READONLY_KW@8..20 "readonly" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")],
                                },
                                l_brack_token: L_BRACK@20..21 "[" [] [],
                                property_name: TsTypeParameterName {
                                    ident_token: IDENT@21..23 "A" [] [Whitespace(" ")],
                                },
                                in_token: IN_KW@23..26 "in" [] [Whitespace(" ")],
                                keys_type: TsTypeOperatorType {
                                    operator_token: KEYOF_KW@26..32 "keyof" [] [Whitespace(" ")],
                                    ty: TsReferenceType {
                                        name: JsReferenceIdentifier {
                                            value_token: IDENT@32..33 "B" [] [],
                                        },
                                        type_arguments: missing (optional),
                                    },
                                },
                                as_clause: missing (optional),
                                r_brack_token: R_BRACK@33..34 "]" [] [],
                                optional_modifier: TsMappedTypeOptionalModifierClause {
                                    operator_token: missing (optional),
                                    question_mark_token: QUESTION@34..35 "?" [] [],
                                },
                                mapped_type: TsTypeAnnotation {
                                    colon_token: COLON@35..37 ":" [] [Whitespace(" ")],
                                    ty: TsAnyType {
                                        any_token: ANY_KW@37..40 "any" [] [],
                                    },
                                },
                                semicolon_token: SEMICOLON@40..41 ";" [] [],
                                r_curly_token: R_CURLY@41..43 "}" [Newline("\n")] [],
                            },
                        },
                        initializer: missing (optional),
                    },
                ],
            },
            semicolon_token: SEMICOLON@43..44 ";" [] [],
        },
    ],
    eof_token: EOF@44..45 "" [Newline("\n")] [],
}

0: JS_MODULE@0..45
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..44
    0: JS_VARIABLE_STATEMENT@0..44
      0: JS_VARIABLE_DECLARATION@0..43
        0: (empty)
        1: VAR_KW@0..4 "var" [] [Whitespace(" ")]
        2: JS_VARIABLE_DECLARATOR_LIST@4..43
          0: JS_VARIABLE_DECLARATOR@4..43
            0: JS_IDENTIFIER_BINDING@4..5
              0: IDENT@4..5 "x" [] []
            1: TS_TYPE_ANNOTATION@5..43
              0: COLON@5..7 ":" [] [Whitespace(" ")]
              1: TS_MAPPED_TYPE@7..43
                0: L_CURLY@7..8 "{" [] []
                1: TS_MAPPED_TYPE_READONLY_MODIFIER_CLAUSE@8..20
                  0: (empty)
                  1: READONLY_KW@8..20 "readonly" [Newline("\n"), Whitespace("  ")] [Whitespace(" ")]
                2: L_BRACK@20..21 "[" [] []
                3: TS_TYPE_PARAMETER_NAME@21..23
                  0: IDENT@21..23 "A" [] [Whitespace(" ")]
                4: IN_KW@23..26 "in" [] [Whitespace(" ")]
                5: TS_TYPE_OPERATOR_TYPE@26..33
                  0: KEYOF_KW@26..32 "keyof" [] [Whitespace(" ")]
                  1: TS_REFERENCE_TYPE@32..33
                    0: JS_REFERENCE_IDENTIFIER@32..33
                      0: IDENT@32..33 "B" [] []
                    1: (empty)
                6: (empty)
                7: R_BRACK@33..34 "]" [] []
                8: TS_MAPPED_TYPE_OPTIONAL_MODIFIER_CLAUSE@34..35
                  0: (empty)
                  1: QUESTION@34..35 "?" [] []
                9: TS_TYPE_ANNOTATION@35..40
                  0: COLON@35..37 ":" [] [Whitespace(" ")]
                  1: TS_ANY_TYPE@37..40
                    0: ANY_KW@37..40 "any" [] []
                10: SEMICOLON@40..41 ";" [] []
                11: R_CURLY@41..43 "}" [Newline("\n")] []
            2: (empty)
      1: SEMICOLON@43..44 ";" [] []
  4: EOF@44..45 "" [Newline("\n")] []