biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsFunctionDeclaration {
            async_token: missing (optional),
            function_token: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@9..13 "test" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@13..14 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@14..15 "a" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@15..17 ":" [] [Whitespace(" ")],
                            ty: TsStringType {
                                string_token: STRING_KW@17..23 "string" [] [],
                            },
                        },
                        initializer: missing (optional),
                    },
                    COMMA@23..25 "," [] [Whitespace(" ")],
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@25..26 "b" [] [],
                        },
                        question_mark_token: QUESTION@26..27 "?" [] [],
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@27..29 ":" [] [Whitespace(" ")],
                            ty: TsNumberType {
                                number_token: NUMBER_KW@29..35 "number" [] [],
                            },
                        },
                        initializer: missing (optional),
                    },
                    COMMA@35..37 "," [] [Whitespace(" ")],
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@37..38 "c" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: missing (optional),
                        initializer: JsInitializerClause {
                            eq_token: EQ@38..39 "=" [] [],
                            expression: JsStringLiteralExpression {
                                value_token: JS_STRING_LITERAL@39..48 "\"default\"" [] [],
                            },
                        },
                    },
                ],
                r_paren_token: R_PAREN@48..50 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@50..51 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [],
                r_curly_token: R_CURLY@51..52 "}" [] [],
            },
        },
        JsFunctionDeclaration {
            async_token: missing (optional),
            function_token: FUNCTION_KW@52..62 "function" [Newline("\n")] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@62..67 "test2" [] [],
            },
            type_parameters: TsTypeParameters {
                l_angle_token: L_ANGLE@67..68 "<" [] [],
                items: TsTypeParameterList [
                    TsTypeParameter {
                        modifiers: TsTypeParameterModifierList [],
                        name: TsTypeParameterName {
                            ident_token: IDENT@68..69 "A" [] [],
                        },
                        constraint: missing (optional),
                        default: missing (optional),
                    },
                    COMMA@69..71 "," [] [Whitespace(" ")],
                    TsTypeParameter {
                        modifiers: TsTypeParameterModifierList [],
                        name: TsTypeParameterName {
                            ident_token: IDENT@71..73 "B" [] [Whitespace(" ")],
                        },
                        constraint: TsTypeConstraintClause {
                            extends_token: EXTENDS_KW@73..81 "extends" [] [Whitespace(" ")],
                            ty: TsReferenceType {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@81..82 "A" [] [],
                                },
                                type_arguments: missing (optional),
                            },
                        },
                        default: missing (optional),
                    },
                    COMMA@82..84 "," [] [Whitespace(" ")],
                    TsTypeParameter {
                        modifiers: TsTypeParameterModifierList [],
                        name: TsTypeParameterName {
                            ident_token: IDENT@84..86 "C" [] [Whitespace(" ")],
                        },
                        constraint: missing (optional),
                        default: TsDefaultTypeClause {
                            eq_token: EQ@86..88 "=" [] [Whitespace(" ")],
                            ty: TsReferenceType {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@88..89 "A" [] [],
                                },
                                type_arguments: missing (optional),
                            },
                        },
                    },
                ],
                r_angle_token: R_ANGLE@89..90 ">" [] [],
            },
            parameters: JsParameters {
                l_paren_token: L_PAREN@90..91 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@91..92 "a" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@92..94 ":" [] [Whitespace(" ")],
                            ty: TsReferenceType {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@94..95 "A" [] [],
                                },
                                type_arguments: missing (optional),
                            },
                        },
                        initializer: missing (optional),
                    },
                    COMMA@95..97 "," [] [Whitespace(" ")],
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@97..98 "b" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@98..100 ":" [] [Whitespace(" ")],
                            ty: TsReferenceType {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@100..101 "B" [] [],
                                },
                                type_arguments: missing (optional),
                            },
                        },
                        initializer: missing (optional),
                    },
                    COMMA@101..103 "," [] [Whitespace(" ")],
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@103..104 "c" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@104..106 ":" [] [Whitespace(" ")],
                            ty: TsReferenceType {
                                name: JsReferenceIdentifier {
                                    value_token: IDENT@106..107 "C" [] [],
                                },
                                type_arguments: missing (optional),
                            },
                        },
                        initializer: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@107..109 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@109..110 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [],
                r_curly_token: R_CURLY@110..111 "}" [] [],
            },
        },
    ],
    eof_token: EOF@111..112 "" [Newline("\n")] [],
}

0: JS_MODULE@0..112
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..111
    0: JS_FUNCTION_DECLARATION@0..52
      0: (empty)
      1: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@9..13
        0: IDENT@9..13 "test" [] []
      4: (empty)
      5: JS_PARAMETERS@13..50
        0: L_PAREN@13..14 "(" [] []
        1: JS_PARAMETER_LIST@14..48
          0: JS_FORMAL_PARAMETER@14..23
            0: JS_DECORATOR_LIST@14..14
            1: JS_IDENTIFIER_BINDING@14..15
              0: IDENT@14..15 "a" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@15..23
              0: COLON@15..17 ":" [] [Whitespace(" ")]
              1: TS_STRING_TYPE@17..23
                0: STRING_KW@17..23 "string" [] []
            4: (empty)
          1: COMMA@23..25 "," [] [Whitespace(" ")]
          2: JS_FORMAL_PARAMETER@25..35
            0: JS_DECORATOR_LIST@25..25
            1: JS_IDENTIFIER_BINDING@25..26
              0: IDENT@25..26 "b" [] []
            2: QUESTION@26..27 "?" [] []
            3: TS_TYPE_ANNOTATION@27..35
              0: COLON@27..29 ":" [] [Whitespace(" ")]
              1: TS_NUMBER_TYPE@29..35
                0: NUMBER_KW@29..35 "number" [] []
            4: (empty)
          3: COMMA@35..37 "," [] [Whitespace(" ")]
          4: JS_FORMAL_PARAMETER@37..48
            0: JS_DECORATOR_LIST@37..37
            1: JS_IDENTIFIER_BINDING@37..38
              0: IDENT@37..38 "c" [] []
            2: (empty)
            3: (empty)
            4: JS_INITIALIZER_CLAUSE@38..48
              0: EQ@38..39 "=" [] []
              1: JS_STRING_LITERAL_EXPRESSION@39..48
                0: JS_STRING_LITERAL@39..48 "\"default\"" [] []
        2: R_PAREN@48..50 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@50..52
        0: L_CURLY@50..51 "{" [] []
        1: JS_DIRECTIVE_LIST@51..51
        2: JS_STATEMENT_LIST@51..51
        3: R_CURLY@51..52 "}" [] []
    1: JS_FUNCTION_DECLARATION@52..111
      0: (empty)
      1: FUNCTION_KW@52..62 "function" [Newline("\n")] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@62..67
        0: IDENT@62..67 "test2" [] []
      4: TS_TYPE_PARAMETERS@67..90
        0: L_ANGLE@67..68 "<" [] []
        1: TS_TYPE_PARAMETER_LIST@68..89
          0: TS_TYPE_PARAMETER@68..69
            0: TS_TYPE_PARAMETER_MODIFIER_LIST@68..68
            1: TS_TYPE_PARAMETER_NAME@68..69
              0: IDENT@68..69 "A" [] []
            2: (empty)
            3: (empty)
          1: COMMA@69..71 "," [] [Whitespace(" ")]
          2: TS_TYPE_PARAMETER@71..82
            0: TS_TYPE_PARAMETER_MODIFIER_LIST@71..71
            1: TS_TYPE_PARAMETER_NAME@71..73
              0: IDENT@71..73 "B" [] [Whitespace(" ")]
            2: TS_TYPE_CONSTRAINT_CLAUSE@73..82
              0: EXTENDS_KW@73..81 "extends" [] [Whitespace(" ")]
              1: TS_REFERENCE_TYPE@81..82
                0: JS_REFERENCE_IDENTIFIER@81..82
                  0: IDENT@81..82 "A" [] []
                1: (empty)
            3: (empty)
          3: COMMA@82..84 "," [] [Whitespace(" ")]
          4: TS_TYPE_PARAMETER@84..89
            0: TS_TYPE_PARAMETER_MODIFIER_LIST@84..84
            1: TS_TYPE_PARAMETER_NAME@84..86
              0: IDENT@84..86 "C" [] [Whitespace(" ")]
            2: (empty)
            3: TS_DEFAULT_TYPE_CLAUSE@86..89
              0: EQ@86..88 "=" [] [Whitespace(" ")]
              1: TS_REFERENCE_TYPE@88..89
                0: JS_REFERENCE_IDENTIFIER@88..89
                  0: IDENT@88..89 "A" [] []
                1: (empty)
        2: R_ANGLE@89..90 ">" [] []
      5: JS_PARAMETERS@90..109
        0: L_PAREN@90..91 "(" [] []
        1: JS_PARAMETER_LIST@91..107
          0: JS_FORMAL_PARAMETER@91..95
            0: JS_DECORATOR_LIST@91..91
            1: JS_IDENTIFIER_BINDING@91..92
              0: IDENT@91..92 "a" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@92..95
              0: COLON@92..94 ":" [] [Whitespace(" ")]
              1: TS_REFERENCE_TYPE@94..95
                0: JS_REFERENCE_IDENTIFIER@94..95
                  0: IDENT@94..95 "A" [] []
                1: (empty)
            4: (empty)
          1: COMMA@95..97 "," [] [Whitespace(" ")]
          2: JS_FORMAL_PARAMETER@97..101
            0: JS_DECORATOR_LIST@97..97
            1: JS_IDENTIFIER_BINDING@97..98
              0: IDENT@97..98 "b" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@98..101
              0: COLON@98..100 ":" [] [Whitespace(" ")]
              1: TS_REFERENCE_TYPE@100..101
                0: JS_REFERENCE_IDENTIFIER@100..101
                  0: IDENT@100..101 "B" [] []
                1: (empty)
            4: (empty)
          3: COMMA@101..103 "," [] [Whitespace(" ")]
          4: JS_FORMAL_PARAMETER@103..107
            0: JS_DECORATOR_LIST@103..103
            1: JS_IDENTIFIER_BINDING@103..104
              0: IDENT@103..104 "c" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@104..107
              0: COLON@104..106 ":" [] [Whitespace(" ")]
              1: TS_REFERENCE_TYPE@106..107
                0: JS_REFERENCE_IDENTIFIER@106..107
                  0: IDENT@106..107 "C" [] []
                1: (empty)
            4: (empty)
        2: R_PAREN@107..109 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@109..111
        0: L_CURLY@109..110 "{" [] []
        1: JS_DIRECTIVE_LIST@110..110
        2: JS_STATEMENT_LIST@110..110
        3: R_CURLY@110..111 "}" [] []
  4: EOF@111..112 "" [Newline("\n")] []