biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        TsInterfaceDeclaration {
            interface_token: INTERFACE_KW@0..10 "interface" [] [Whitespace(" ")],
            id: TsIdentifierBinding {
                name_token: IDENT@10..12 "A" [] [Whitespace(" ")],
            },
            type_parameters: missing (optional),
            extends_clause: missing (optional),
            l_curly_token: L_CURLY@12..13 "{" [] [],
            members: TsTypeMemberList [],
            r_curly_token: R_CURLY@13..14 "}" [] [],
        },
        TsInterfaceDeclaration {
            interface_token: INTERFACE_KW@14..25 "interface" [Newline("\n")] [Whitespace(" ")],
            id: TsIdentifierBinding {
                name_token: IDENT@25..27 "B" [] [Whitespace(" ")],
            },
            type_parameters: missing (optional),
            extends_clause: missing (optional),
            l_curly_token: L_CURLY@27..29 "{" [] [Whitespace(" ")],
            members: TsTypeMemberList [
                TsPropertySignatureTypeMember {
                    readonly_token: missing (optional),
                    name: JsLiteralMemberName {
                        value: IDENT@29..33 "prop" [] [],
                    },
                    optional_token: missing (optional),
                    type_annotation: TsTypeAnnotation {
                        colon_token: COLON@33..35 ":" [] [Whitespace(" ")],
                        ty: TsStringType {
                            string_token: STRING_KW@35..41 "string" [] [],
                        },
                    },
                    separator_token: COMMA@41..43 "," [] [Whitespace(" ")],
                },
                TsMethodSignatureTypeMember {
                    name: JsLiteralMemberName {
                        value: IDENT@43..49 "method" [] [],
                    },
                    optional_token: missing (optional),
                    type_parameters: missing (optional),
                    parameters: JsParameters {
                        l_paren_token: L_PAREN@49..50 "(" [] [],
                        items: JsParameterList [],
                        r_paren_token: R_PAREN@50..51 ")" [] [],
                    },
                    return_type_annotation: TsReturnTypeAnnotation {
                        colon_token: COLON@51..53 ":" [] [Whitespace(" ")],
                        ty: TsStringType {
                            string_token: STRING_KW@53..59 "string" [] [],
                        },
                    },
                    separator_token: COMMA@59..61 "," [] [Whitespace(" ")],
                },
                TsIndexSignatureTypeMember {
                    readonly_token: missing (optional),
                    l_brack_token: L_BRACK@61..62 "[" [] [],
                    parameter: TsIndexSignatureParameter {
                        binding: JsIdentifierBinding {
                            name_token: IDENT@62..67 "index" [] [],
                        },
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@67..69 ":" [] [Whitespace(" ")],
                            ty: TsNumberType {
                                number_token: NUMBER_KW@69..75 "number" [] [],
                            },
                        },
                    },
                    r_brack_token: R_BRACK@75..76 "]" [] [],
                    type_annotation: TsTypeAnnotation {
                        colon_token: COLON@76..78 ":" [] [Whitespace(" ")],
                        ty: TsStringType {
                            string_token: STRING_KW@78..84 "string" [] [],
                        },
                    },
                    separator_token: COMMA@84..86 "," [] [Whitespace(" ")],
                },
                TsConstructSignatureTypeMember {
                    new_token: NEW_KW@86..89 "new" [] [],
                    type_parameters: missing (optional),
                    parameters: JsParameters {
                        l_paren_token: L_PAREN@89..90 "(" [] [],
                        items: JsParameterList [],
                        r_paren_token: R_PAREN@90..91 ")" [] [],
                    },
                    type_annotation: TsTypeAnnotation {
                        colon_token: COLON@91..93 ":" [] [Whitespace(" ")],
                        ty: TsReferenceType {
                            name: JsReferenceIdentifier {
                                value_token: IDENT@93..95 "B" [] [Whitespace(" ")],
                            },
                            type_arguments: missing (optional),
                        },
                    },
                    separator_token: missing (optional),
                },
            ],
            r_curly_token: R_CURLY@95..96 "}" [] [],
        },
    ],
    eof_token: EOF@96..97 "" [Newline("\n")] [],
}

0: JS_MODULE@0..97
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..96
    0: TS_INTERFACE_DECLARATION@0..14
      0: INTERFACE_KW@0..10 "interface" [] [Whitespace(" ")]
      1: TS_IDENTIFIER_BINDING@10..12
        0: IDENT@10..12 "A" [] [Whitespace(" ")]
      2: (empty)
      3: (empty)
      4: L_CURLY@12..13 "{" [] []
      5: TS_TYPE_MEMBER_LIST@13..13
      6: R_CURLY@13..14 "}" [] []
    1: TS_INTERFACE_DECLARATION@14..96
      0: INTERFACE_KW@14..25 "interface" [Newline("\n")] [Whitespace(" ")]
      1: TS_IDENTIFIER_BINDING@25..27
        0: IDENT@25..27 "B" [] [Whitespace(" ")]
      2: (empty)
      3: (empty)
      4: L_CURLY@27..29 "{" [] [Whitespace(" ")]
      5: TS_TYPE_MEMBER_LIST@29..95
        0: TS_PROPERTY_SIGNATURE_TYPE_MEMBER@29..43
          0: (empty)
          1: JS_LITERAL_MEMBER_NAME@29..33
            0: IDENT@29..33 "prop" [] []
          2: (empty)
          3: TS_TYPE_ANNOTATION@33..41
            0: COLON@33..35 ":" [] [Whitespace(" ")]
            1: TS_STRING_TYPE@35..41
              0: STRING_KW@35..41 "string" [] []
          4: COMMA@41..43 "," [] [Whitespace(" ")]
        1: TS_METHOD_SIGNATURE_TYPE_MEMBER@43..61
          0: JS_LITERAL_MEMBER_NAME@43..49
            0: IDENT@43..49 "method" [] []
          1: (empty)
          2: (empty)
          3: JS_PARAMETERS@49..51
            0: L_PAREN@49..50 "(" [] []
            1: JS_PARAMETER_LIST@50..50
            2: R_PAREN@50..51 ")" [] []
          4: TS_RETURN_TYPE_ANNOTATION@51..59
            0: COLON@51..53 ":" [] [Whitespace(" ")]
            1: TS_STRING_TYPE@53..59
              0: STRING_KW@53..59 "string" [] []
          5: COMMA@59..61 "," [] [Whitespace(" ")]
        2: TS_INDEX_SIGNATURE_TYPE_MEMBER@61..86
          0: (empty)
          1: L_BRACK@61..62 "[" [] []
          2: TS_INDEX_SIGNATURE_PARAMETER@62..75
            0: JS_IDENTIFIER_BINDING@62..67
              0: IDENT@62..67 "index" [] []
            1: TS_TYPE_ANNOTATION@67..75
              0: COLON@67..69 ":" [] [Whitespace(" ")]
              1: TS_NUMBER_TYPE@69..75
                0: NUMBER_KW@69..75 "number" [] []
          3: R_BRACK@75..76 "]" [] []
          4: TS_TYPE_ANNOTATION@76..84
            0: COLON@76..78 ":" [] [Whitespace(" ")]
            1: TS_STRING_TYPE@78..84
              0: STRING_KW@78..84 "string" [] []
          5: COMMA@84..86 "," [] [Whitespace(" ")]
        3: TS_CONSTRUCT_SIGNATURE_TYPE_MEMBER@86..95
          0: NEW_KW@86..89 "new" [] []
          1: (empty)
          2: JS_PARAMETERS@89..91
            0: L_PAREN@89..90 "(" [] []
            1: JS_PARAMETER_LIST@90..90
            2: R_PAREN@90..91 ")" [] []
          3: TS_TYPE_ANNOTATION@91..95
            0: COLON@91..93 ":" [] [Whitespace(" ")]
            1: TS_REFERENCE_TYPE@93..95
              0: JS_REFERENCE_IDENTIFIER@93..95
                0: IDENT@93..95 "B" [] [Whitespace(" ")]
              1: (empty)
          4: (empty)
      6: R_CURLY@95..96 "}" [] []
  4: EOF@96..97 "" [Newline("\n")] []