biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        TsDeclareFunctionDeclaration {
            async_token: missing (optional),
            function_token: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")],
            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),
                    },
                ],
                r_paren_token: R_PAREN@23..24 ")" [] [],
            },
            return_type_annotation: TsReturnTypeAnnotation {
                colon_token: COLON@24..26 ":" [] [Whitespace(" ")],
                ty: TsVoidType {
                    void_token: VOID_KW@26..30 "void" [] [],
                },
            },
            semicolon_token: SEMICOLON@30..31 ";" [] [],
        },
        JsFunctionDeclaration {
            async_token: missing (optional),
            function_token: FUNCTION_KW@31..41 "function" [Newline("\n")] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@41..45 "test" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@45..46 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@46..47 "a" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@47..49 ":" [] [Whitespace(" ")],
                            ty: TsUnionType {
                                leading_separator_token: missing (optional),
                                types: TsUnionTypeVariantList [
                                    TsStringType {
                                        string_token: STRING_KW@49..56 "string" [] [Whitespace(" ")],
                                    },
                                    PIPE@56..58 "|" [] [Whitespace(" ")],
                                    TsUndefinedType {
                                        undefined_token: UNDEFINED_KW@58..67 "undefined" [] [],
                                    },
                                ],
                            },
                        },
                        initializer: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@67..68 ")" [] [],
            },
            return_type_annotation: TsReturnTypeAnnotation {
                colon_token: COLON@68..70 ":" [] [Whitespace(" ")],
                ty: TsVoidType {
                    void_token: VOID_KW@70..75 "void" [] [Whitespace(" ")],
                },
            },
            body: JsFunctionBody {
                l_curly_token: L_CURLY@75..76 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [],
                r_curly_token: R_CURLY@76..77 "}" [] [],
            },
        },
        TsDeclareFunctionDeclaration {
            async_token: missing (optional),
            function_token: FUNCTION_KW@77..87 "function" [Newline("\n")] [Whitespace(" ")],
            id: JsIdentifierBinding {
                name_token: IDENT@87..94 "no_semi" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@94..95 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@95..96 "a" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@96..98 ":" [] [Whitespace(" ")],
                            ty: TsStringType {
                                string_token: STRING_KW@98..104 "string" [] [],
                            },
                        },
                        initializer: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@104..105 ")" [] [],
            },
            return_type_annotation: missing (optional),
            semicolon_token: missing (optional),
        },
        JsFunctionDeclaration {
            async_token: missing (optional),
            function_token: FUNCTION_KW@105..115 "function" [Newline("\n")] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@115..122 "no_semi" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@122..123 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@123..124 "a" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@124..126 ":" [] [Whitespace(" ")],
                            ty: TsStringType {
                                string_token: STRING_KW@126..132 "string" [] [],
                            },
                        },
                        initializer: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@132..134 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@134..135 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [],
                r_curly_token: R_CURLY@135..136 "}" [] [],
            },
        },
        TsDeclareFunctionDeclaration {
            async_token: ASYNC_KW@136..143 "async" [Newline("\n")] [Whitespace(" ")],
            function_token: FUNCTION_KW@143..152 "function" [] [Whitespace(" ")],
            id: JsIdentifierBinding {
                name_token: IDENT@152..166 "async_overload" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@166..167 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@167..168 "a" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@168..170 ":" [] [Whitespace(" ")],
                            ty: TsStringType {
                                string_token: STRING_KW@170..176 "string" [] [],
                            },
                        },
                        initializer: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@176..177 ")" [] [],
            },
            return_type_annotation: missing (optional),
            semicolon_token: missing (optional),
        },
        JsFunctionDeclaration {
            async_token: ASYNC_KW@177..184 "async" [Newline("\n")] [Whitespace(" ")],
            function_token: FUNCTION_KW@184..193 "function" [] [Whitespace(" ")],
            star_token: missing (optional),
            id: JsIdentifierBinding {
                name_token: IDENT@193..207 "async_overload" [] [],
            },
            type_parameters: missing (optional),
            parameters: JsParameters {
                l_paren_token: L_PAREN@207..208 "(" [] [],
                items: JsParameterList [
                    JsFormalParameter {
                        decorators: JsDecoratorList [],
                        binding: JsIdentifierBinding {
                            name_token: IDENT@208..209 "a" [] [],
                        },
                        question_mark_token: missing (optional),
                        type_annotation: TsTypeAnnotation {
                            colon_token: COLON@209..211 ":" [] [Whitespace(" ")],
                            ty: TsStringType {
                                string_token: STRING_KW@211..217 "string" [] [],
                            },
                        },
                        initializer: missing (optional),
                    },
                ],
                r_paren_token: R_PAREN@217..219 ")" [] [Whitespace(" ")],
            },
            return_type_annotation: missing (optional),
            body: JsFunctionBody {
                l_curly_token: L_CURLY@219..220 "{" [] [],
                directives: JsDirectiveList [],
                statements: JsStatementList [],
                r_curly_token: R_CURLY@220..221 "}" [] [],
            },
        },
    ],
    eof_token: EOF@221..222 "" [Newline("\n")] [],
}

0: JS_MODULE@0..222
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..221
    0: TS_DECLARE_FUNCTION_DECLARATION@0..31
      0: (empty)
      1: FUNCTION_KW@0..9 "function" [] [Whitespace(" ")]
      2: JS_IDENTIFIER_BINDING@9..13
        0: IDENT@9..13 "test" [] []
      3: (empty)
      4: JS_PARAMETERS@13..24
        0: L_PAREN@13..14 "(" [] []
        1: JS_PARAMETER_LIST@14..23
          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)
        2: R_PAREN@23..24 ")" [] []
      5: TS_RETURN_TYPE_ANNOTATION@24..30
        0: COLON@24..26 ":" [] [Whitespace(" ")]
        1: TS_VOID_TYPE@26..30
          0: VOID_KW@26..30 "void" [] []
      6: SEMICOLON@30..31 ";" [] []
    1: JS_FUNCTION_DECLARATION@31..77
      0: (empty)
      1: FUNCTION_KW@31..41 "function" [Newline("\n")] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@41..45
        0: IDENT@41..45 "test" [] []
      4: (empty)
      5: JS_PARAMETERS@45..68
        0: L_PAREN@45..46 "(" [] []
        1: JS_PARAMETER_LIST@46..67
          0: JS_FORMAL_PARAMETER@46..67
            0: JS_DECORATOR_LIST@46..46
            1: JS_IDENTIFIER_BINDING@46..47
              0: IDENT@46..47 "a" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@47..67
              0: COLON@47..49 ":" [] [Whitespace(" ")]
              1: TS_UNION_TYPE@49..67
                0: (empty)
                1: TS_UNION_TYPE_VARIANT_LIST@49..67
                  0: TS_STRING_TYPE@49..56
                    0: STRING_KW@49..56 "string" [] [Whitespace(" ")]
                  1: PIPE@56..58 "|" [] [Whitespace(" ")]
                  2: TS_UNDEFINED_TYPE@58..67
                    0: UNDEFINED_KW@58..67 "undefined" [] []
            4: (empty)
        2: R_PAREN@67..68 ")" [] []
      6: TS_RETURN_TYPE_ANNOTATION@68..75
        0: COLON@68..70 ":" [] [Whitespace(" ")]
        1: TS_VOID_TYPE@70..75
          0: VOID_KW@70..75 "void" [] [Whitespace(" ")]
      7: JS_FUNCTION_BODY@75..77
        0: L_CURLY@75..76 "{" [] []
        1: JS_DIRECTIVE_LIST@76..76
        2: JS_STATEMENT_LIST@76..76
        3: R_CURLY@76..77 "}" [] []
    2: TS_DECLARE_FUNCTION_DECLARATION@77..105
      0: (empty)
      1: FUNCTION_KW@77..87 "function" [Newline("\n")] [Whitespace(" ")]
      2: JS_IDENTIFIER_BINDING@87..94
        0: IDENT@87..94 "no_semi" [] []
      3: (empty)
      4: JS_PARAMETERS@94..105
        0: L_PAREN@94..95 "(" [] []
        1: JS_PARAMETER_LIST@95..104
          0: JS_FORMAL_PARAMETER@95..104
            0: JS_DECORATOR_LIST@95..95
            1: JS_IDENTIFIER_BINDING@95..96
              0: IDENT@95..96 "a" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@96..104
              0: COLON@96..98 ":" [] [Whitespace(" ")]
              1: TS_STRING_TYPE@98..104
                0: STRING_KW@98..104 "string" [] []
            4: (empty)
        2: R_PAREN@104..105 ")" [] []
      5: (empty)
      6: (empty)
    3: JS_FUNCTION_DECLARATION@105..136
      0: (empty)
      1: FUNCTION_KW@105..115 "function" [Newline("\n")] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@115..122
        0: IDENT@115..122 "no_semi" [] []
      4: (empty)
      5: JS_PARAMETERS@122..134
        0: L_PAREN@122..123 "(" [] []
        1: JS_PARAMETER_LIST@123..132
          0: JS_FORMAL_PARAMETER@123..132
            0: JS_DECORATOR_LIST@123..123
            1: JS_IDENTIFIER_BINDING@123..124
              0: IDENT@123..124 "a" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@124..132
              0: COLON@124..126 ":" [] [Whitespace(" ")]
              1: TS_STRING_TYPE@126..132
                0: STRING_KW@126..132 "string" [] []
            4: (empty)
        2: R_PAREN@132..134 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@134..136
        0: L_CURLY@134..135 "{" [] []
        1: JS_DIRECTIVE_LIST@135..135
        2: JS_STATEMENT_LIST@135..135
        3: R_CURLY@135..136 "}" [] []
    4: TS_DECLARE_FUNCTION_DECLARATION@136..177
      0: ASYNC_KW@136..143 "async" [Newline("\n")] [Whitespace(" ")]
      1: FUNCTION_KW@143..152 "function" [] [Whitespace(" ")]
      2: JS_IDENTIFIER_BINDING@152..166
        0: IDENT@152..166 "async_overload" [] []
      3: (empty)
      4: JS_PARAMETERS@166..177
        0: L_PAREN@166..167 "(" [] []
        1: JS_PARAMETER_LIST@167..176
          0: JS_FORMAL_PARAMETER@167..176
            0: JS_DECORATOR_LIST@167..167
            1: JS_IDENTIFIER_BINDING@167..168
              0: IDENT@167..168 "a" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@168..176
              0: COLON@168..170 ":" [] [Whitespace(" ")]
              1: TS_STRING_TYPE@170..176
                0: STRING_KW@170..176 "string" [] []
            4: (empty)
        2: R_PAREN@176..177 ")" [] []
      5: (empty)
      6: (empty)
    5: JS_FUNCTION_DECLARATION@177..221
      0: ASYNC_KW@177..184 "async" [Newline("\n")] [Whitespace(" ")]
      1: FUNCTION_KW@184..193 "function" [] [Whitespace(" ")]
      2: (empty)
      3: JS_IDENTIFIER_BINDING@193..207
        0: IDENT@193..207 "async_overload" [] []
      4: (empty)
      5: JS_PARAMETERS@207..219
        0: L_PAREN@207..208 "(" [] []
        1: JS_PARAMETER_LIST@208..217
          0: JS_FORMAL_PARAMETER@208..217
            0: JS_DECORATOR_LIST@208..208
            1: JS_IDENTIFIER_BINDING@208..209
              0: IDENT@208..209 "a" [] []
            2: (empty)
            3: TS_TYPE_ANNOTATION@209..217
              0: COLON@209..211 ":" [] [Whitespace(" ")]
              1: TS_STRING_TYPE@211..217
                0: STRING_KW@211..217 "string" [] []
            4: (empty)
        2: R_PAREN@217..219 ")" [] [Whitespace(" ")]
      6: (empty)
      7: JS_FUNCTION_BODY@219..221
        0: L_CURLY@219..220 "{" [] []
        1: JS_DIRECTIVE_LIST@220..220
        2: JS_STATEMENT_LIST@220..220
        3: R_CURLY@220..221 "}" [] []
  4: EOF@221..222 "" [Newline("\n")] []